我有这个作为我的模特;
我正在寻找的是一个LINQ表达式,它可以为我提供UserActivity记录,按所有用户朋友的UserActivity.DateTime
排序。
换句话说,如果用户有三个朋友,那么我想要这三个朋友的活动记录。
我尝试过使用.In
和.Contains
,但我的LINQ目前很差。
或者任何人都可以建议一个能给我相同结果的不同模型吗?
答案 0 :(得分:3)
如果您拥有您想要的用户的用户ID,那么此类朋友的活动应该与您当前的架构一起使用:
var results = from user in aspnet_User
join friend in UserFriend on user.UserId equals friend.UserId
join activity in UserActivity on activity.UserId equals friend.FriendUserId
where user.UserId == someUserId
orderby activity.DateTime ascending
select activity;
答案 1 :(得分:1)
我不知道这是否有帮助,但它是我的头脑,我甚至没有测试它:-)希望这有帮助。 USER_ID是您想要查看他/她朋友活动的用户。
from a in UserActivity
where
(
from f in UserFriend
where f.Userid == USER_ID
select f.FriendUserId
)
.Distinct().ToList().Contains(a.UserId)
order by a.DateTime
select a;