怎样用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()