我在我正在编写的应用程序中使用此LINQ查询:
internal int GetNoteCount(DateTime startDate, DateTime endDate)
{
var a = DataStore.ObjectContext.Notes.Where(n => n.LastRevised >= startDate);
var b = a.Where(n => n.LastRevised <= endDate);
return b.Count();
}
显然,查询会获得介于两个日期之间的Notes。我想通过将前两行合并为一个来简化查询。我知道我可以使用流畅的语法将Count()方法调用添加到查询的末尾。
这是我的问题:如何整合这两个查询?显然,&amp;&amp; operator不能使用两个lambda表达式。谢谢你的帮助。
答案 0 :(得分:3)
你可以这样做:
internal int GetNoteCount(DateTime startDate, DateTime endDate)
{
return DataStore.ObjectContext.Notes.Where(n => n.LastRevised >= startDate && n.LastRevised <= endDate).Count();
}
根据您的条件使用&&
,而不是整个lambda:)
答案 1 :(得分:1)
首先,&amp;&amp;&amp;操作员,它应该工作得很好。
var a = DataStore.ObjectContext.Notes.Where(n => n.LastRevised >= startDate && n.LastRevised <= endDate);
return a.Count();
其次,使用LINQ,它会延迟执行查询,直到.Count(),因此您的示例与此示例之间没有功能差异。