Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ选择查询_C#_Linq_Linq To Sql - Fatal编程技术网

C# LINQ选择查询

C# LINQ选择查询,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我有这个作为我的模型 我要找的是一个LINQ表达式,它可以给我UserActivity记录,按所有用户朋友的UserActivity.DateTime排序 换句话说,如果一个用户有三个朋友,那么我需要这三个朋友的活动记录 我试过在和中使用。Contains,但我的LINQ目前相当差 或者有人能推荐一个不同的模型来给我相同的结果吗?如果您有用户的用户id,您希望朋友的活动可以用于当前模式: var results = from user in aspnet_User

我有这个作为我的模型

我要找的是一个LINQ表达式,它可以给我UserActivity记录,按所有用户朋友的
UserActivity.DateTime
排序

换句话说,如果一个用户有三个朋友,那么我需要这三个朋友的活动记录

我试过在和中使用
。Contains
,但我的LINQ目前相当差


或者有人能推荐一个不同的模型来给我相同的结果吗?

如果您有用户的用户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;

我不知道这是否有帮助,但这是在我的头上,我甚至没有测试它:-)希望这有帮助。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;

Hrmm,如果您在
aspnet\u User
中添加一列
FriendUserId
,并使用自引用外键,会发生什么情况?它会破坏
aspnet架构吗?!?!您的模式可能是最好的,而不是修改
aspnet模式
可能不是,但不希望这样做。我是否应该将UserFriend.FriendUserId与UserActivity.UserId关联?我是否应该将UserFriend.FriendUserId与UserActivity.UserId关联?这是类,而不是表。你应该添加引用,而不是fks。我喜欢这个,但更喜欢@Qorbani,因为它不需要连接。