怎样用LINQ或EF生成NOT IN和IN语句

例如:有一个问卷表Questionnaire和一个活动与问卷的关系表ActivityOption_Questionnaire,现在我们要找出不在活动中的问卷。

用lambda实现方法如下:

var notIn = db.Questionnaires.Where(a => !((db.ActivityOption_Questionnaire_s.Select(b => b.QuestionnaireID)).Contains(a.ID)));

 

 

用LINQ实现方法:

var notIn = from a in Questionnaire
where !((from b in db.ActivityOption_Questionnaire_s select b.QuestionnaireID).Contains(a.ID))
select a;

 

用lambda实现In:

db.L_Reply.SelectMany(s => logs, (s, p) => new {s, p})
.Where(@t => @t.s.LogID == @t.p.ID)
.Select(@t => @t.s).Count()

posted @ 2014-09-17 18:18  徐航  阅读(3005)  评论(0编辑  收藏  举报