2012-05-16 41 views
1

表:如何在Entity Framework中爲以下方案編寫查詢?

用戶

userid  username  imageurl 
1   venkat  http://test.jpg 
2   raghu  http://test1.jpg 
3   ravi   http://test2.jpg 

好友

id userid frienduserid  status 
1  1   2    true 
2  2   1    false 

LogStatus

id userid sessionid 
1  1  7482748 
2  1  8274282 
3  2  3123123 

如果我通過userid=1,那麼需要拉他的朋友username,imageurl,status和他的任何朋友至少有一個sessionid然後給予狀態爲「真」。

由於我能夠加入用戶,朋友表給他的朋友username,imageurlstatus。但如何檢查他的任何一個至少有一個sessionid

我的查詢:

var result = from pa in cxt.Users 
      join us in cxt.Friends on pa.User_Id equals us.Friend_UserId 
      where us.User_Id == incID 
      select new 
        { 
         us.frienduserid, 
         pa.User_Name, 
         pa.ImageURL, 
         us.status 
        }; 

回答

3
var result = 
from user in cxt.Users 
join friend in cxt.Friends on user.UserId equals friend.FriendUserId 
where user.UserId == incId 
select new 
{ 
    FriendUserId = friend.FriendUserId, 
    UserName = user.UserName, 
    ImageUrl = user.ImageUrl, 
    Status = cxt.LogStatus.Any(s=>s.UserId == user.UserId) 
}; 
相關問題