我有2张桌子
用户
用户ID
名
名字
姓氏
友谊
RelationId
用户ID
FriendId
我需要返回友谊表中不存在记录的所有用户。当UserId位于友谊表UserId或FriendId列时,用户可以成为用户的朋友。
答案 0 :(得分:1)
我想你想要这样的东西:
(注意:这是免费的)
int userId = 1;
var userFriends = context.Users
.Where(u => u.ID = userId)
.SelectMany(u => u.FriendShips)
.Select(fs => fs.Friend);
var nonFriends = context.Users
.Where(u => u.ID != userId)
.Except(userFriends);
请注意,nonFriends
是查询。致电.ToList()
以评估查询并返回实际数据。
答案 1 :(得分:1)
我宁愿想到
var users = context.Users.Where(u => !u.Friendships.Any() && !u.Friendships1.Any());
据我所知,用户可以在任何一方,UserId
以及FriendId