Linq-to-sql中的Not Contains或Not in是什么?

7
我正在构建一个投票小部件。我有两个表,称之为Polls和PollsCompleted。我需要进行Linq查询,以获取在PollsCompleted中不存在给定用户的所有投票。
我有以下集合:
对于Polls 其中Active == True 对于PollsCompleted 其中UserId == ThisUserId 其中PollId = Polls.Id
现在我需要获取所有不存在于PollsCompleted中的投票。我需要使用单个或多个查询的示例。我已经尝试将其分解为2个查询。
基本上,我有两个类型T和T1的IQueryable。我想取出所有T,其中T.ID不存在于T1.ParentId中。

1
你知道可以在.Contains()方法中使用"!"运算符吗? - Kirk Woll
2个回答

20
T.Where(x => ! T1.Select(y => y.ParentID).Contains(x.ID))

Linq 中通常是自下而上地工作。这里我们首先获取 T1 中所有 parentIDs 的集合 -- T1.Select(...) 部分。然后创建一个 where 子句,该子句选择不包含在该集合中的所有 Ts。

注意,结果是一个查询。要使其实体化,请对上面的语句使用 ToList() 或类似方法。


6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接