简化LINQ查询?
问题描述:
我用这个LINQ查询在一个应用程序我写:简化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();
}
显然,查询获取落在两个日期之间的注意事项。我想通过将前两行合并为一个来简化查询。我知道我可以使用流利的语法将Count()方法调用添加到查询的末尾。
以下是我的问题:如何合并两个查询?显然,& &运算符不能使用两个lambda表达式。谢谢你的帮助。
答
你可以这样做:
internal int GetNoteCount(DateTime startDate, DateTime endDate)
{
return DataStore.ObjectContext.Notes.Where(n => n.LastRevised >= startDate && n.LastRevised <= endDate).Count();
}
只需使用你的条件,而不是整个拉姆达:)的&&
答
首先,这有什么不对的& &运营商,它应该只是罚款。
var a = DataStore.ObjectContext.Notes.Where(n => n.LastRevised >= startDate && n.LastRevised <= endDate);
return a.Count();
其次,LINQ,它延迟执行查询,直到.Count之间的(),所以就是你们的榜样,这一次的功能没有差异。
不要忘记他正在返回.Count()。 – 2010-08-20 20:31:48
@Jacob - woops,谢谢并加入:) – 2010-08-20 20:35:02
谢谢!接受和+1 – 2010-08-20 20:46:23