Какая эквивалентность SQL WHERE в лямбда-выражениях? - PullRequest
3 голосов
/ 23 июня 2009

Вот что у меня есть:

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

У меня также есть две даты: DateTime start, DateTime end
Я хочу получить сумму всех цен на товары между началом и концом, но не могу понять, как включить переменные в уравнение лямбды.

Как включить переменные в лямбда-уравнение, чтобы придать ему некоторую спецификацию?

Ответы [ 3 ]

11 голосов
/ 23 июня 2009

Использование Перечислим. Где

decimal sum = _myDB.Products
                   .Where(p => (p.Date >= start) && (p.Date <= end) )
                   .Sum(p => p.Price)
                   .GetValueOrDefault();
1 голос
/ 23 июня 2009
 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)
0 голосов
/ 23 июня 2009
_myDB.Products
.Where(p => p.start >= "somevalue")
.Where(p => p.end <= "somevalue")
.Sum(p => p.Price).GetValueOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...