-4

我有 2 张桌子

用户
UserId
用户名
FirstName
LastName

FriendShips
RelationId
UserId
FriendId

我需要返回 Friendship 表中不存在记录的所有用户。当用户的 UserId 在友谊表 UserId 或 FriendId 列中时,用户可以成为用户的朋友。

4

2 回答 2

1

我宁愿想

var users = context.Users.Where(u => !u.Friendships.Any() && !u.Friendships1.Any());

据我了解,用户可以在任何一方,UserId以及FriendId

于 2013-05-30T17:54:51.960 回答
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()评估查询并返回真实数据。

于 2013-05-30T17:50:13.857 回答