C# 什么';在Lambda表达式中,SQL的等价性是什么?

C# 什么';在Lambda表达式中,SQL的等价性是什么?,c#,asp.net-mvc,entity-framework,lambda,C#,Asp.net Mvc,Entity Framework,Lambda,以下是我所拥有的: decimal sum = _myDB.Products.Sum(p => p.Price).GetValueOrDefault(); 我还有两个日期:日期时间开始,日期时间结束 我想检索开始和结束之间所有产品价格的总和,但我不知道如何将变量合并到lambda方程中 如何将变量合并到lambda方程中以给出某种规格?使用 decimal sum=\u myDB.Products 其中(p=>(p.Date>=开始)和(p.Date p.Price) .getValue

以下是我所拥有的:

decimal sum = _myDB.Products.Sum(p => p.Price).GetValueOrDefault();
我还有两个日期:
日期时间开始
日期时间结束

我想检索开始和结束之间所有产品价格的总和,但我不知道如何将变量合并到lambda方程中

如何将变量合并到lambda方程中以给出某种规格?

使用

decimal sum=\u myDB.Products
其中(p=>(p.Date>=开始)和(p.Date p.Price)
.getValuerDefault();
\u myDB.Products
.Where(p=>p.start>=“somevalue”)
.Where(p=>p.end p.Price).getValuerDefault();
十进制和=\u myDB.Products
.Where(p=>p.Start>=mystartDate和p.End p.Price)
请原谅我的语法。但是,我希望你明白我的意思

编辑:根据里德的建议进行更正。
旧代码(不正确)

decimal sum=\u myDB.Products
.Sum(p=>p.Price)

.Where(p=>p.Start>=mystartDate和&p.End在实现方面达成一致,但类似这样的查询在多行上更清晰。将点对齐:)格式方面的观点很好-为了保持一致性,我只是坚持使用他最初问题的格式方法,但这是我通常用自己的代码编写的。@Jon:完成。直到现在才看到你的评论。观点很好Jon。总有一些东西要学(甚至从评论中)。哈哈:)不需要有两个带独立谓词的where子句。where子句需要在Sum之前。Sum返回一个小数点,而你不能对一个小数点执行“.Where”。伙计们,这会有不同的工作方式吗(即不同于Where和Sum)?这根本不会编译。无法在单个值上运行。Where,该值是Sum()返回的值。没问题。当您使用像这样的fluent接口时,每个方法都会返回一个新对象。对于像Where()这样的方法,它返回一个新的IEnumerable,这就是为什么可以将它们“链接”在一起。Sum()只返回一个值(十进制),所以不能在Sum()之后执行另一个需要IEnumerable的方法
decimal sum = _myDB.Products
                   .Where(p => (p.Date >= start) && (p.Date <= end) )
                   .Sum(p => p.Price)
                   .GetValueOrDefault();
_myDB.Products
.Where(p => p.start >= "somevalue")
.Where(p => p.end <= "somevalue")
.Sum(p => p.Price).GetValueOrDefault();
 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)