我正在构建一个民意调查小部件.我有两张桌子,称之为民意调查和民意测验.我需要做一个
linq查询来获取PollsCompleted中给定用户不存在的所有轮询.
我有以下几套:
对于民意调查
Where Active == True
对于民意调查已完成
UserId == ThisUserId
PollId = Polls.Id
现在我需要获得PollsCompleted中不存在的所有民意调查.我需要使用单个或多个查询的示例.我试图将其分解为2个查询.
基本上,我有2个类型为T和T1的IQueryables.我想取T1.ParentId中不存在T.ID的所有T’.
解决方法
T.Where(x => ! T1.Select(y => y.ParentID).Contains(x.ID))
在Linq,你经常从下往上工作.这里我们首先得到T1中所有parentID的集合–T1.Select(…)部分.然后我们创建一个where子句,选择其ID不包含在该集合中的所有Ts.
请注意,结果是查询.要实现它,请在上面的语句中使用ToList()或类似的东西.