如何在Entity Framework中编写以下场景的查询?

时间:2012-05-16 06:09:54

标签: c# .net 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
                    };

1 个答案:

答案 0 :(得分: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)
};