Lambda表达式中SQL WHERE的等价性是什么?

时间:2009-06-23 19:00:11

标签: c# asp.net-mvc entity-framework lambda

这就是我所拥有的:

decimal sum = _myDB.Products.Sum(p => p.Price).GetValueOrDefault();

我还有两个日期:DateTime startDateTime end
我想检索开始和结束之间所有产品价格的总和,但我无法弄清楚如何将变量合并到lambda方程中。

如何将变量合并到lambda方程中以给出一些规范?

3 个答案:

答案 0 :(得分:11)

使用Enumerable.Where

decimal sum = _myDB.Products
                   .Where(p => (p.Date >= start) && (p.Date <= end) )
                   .Sum(p => p.Price)
                   .GetValueOrDefault();

答案 1 :(得分:1)

 decimal sum = _myDB.Products
.Where(p => p.Start >= mystartDate && p.End <= myenddate)
.Sum(p => p.Price)

请原谅我的语法。但是,我希望你明白这个想法。

编辑:在里德的建议之后纠正 旧代码(不正确)

 decimal sum = _myDB.Products
.Sum(p => p.Price)
.Where(p => p.Start >= mystartDate && p.End <= myenddate)

答案 2 :(得分:0)

_myDB.Products
.Where(p => p.start >= "somevalue")
.Where(p => p.end <= "somevalue")
.Sum(p => p.Price).GetValueOrDefault();