LINQ Query и DateTimes - PullRequest
       22

LINQ Query и DateTimes

0 голосов
/ 31 мая 2010

Я пытаюсь получить Sum() из Entityset<MyObject> с помощью следующего запроса.

(from MyObject p in SelectedObject.MyObjectEntitySet
where p.AColumn.HasValue && 
p.ADate >= dateTimeValue &&
p.ADate <= dateTimeValue2
select p.AColumn.Value).Sum();

без удачи, вернув правильную сумму.

Есть идеи?

[РЕДАКТИРОВАТЬ] ОК РАБОТАЕТ!

Ответы [ 2 ]

0 голосов
/ 31 мая 2010

Если вы видите список перегрузок, метод Sum использует числовые значения (десятичные, с плавающей запятой, int, double, long и т. Д.). Селектор должен быть функцией, которая принимает DateTime и возвращает числовое значение.

[править] Извините, я не понял, что AColumn был числовым.

0 голосов
/ 31 мая 2010

Вы можете устранить неполадки в запросе, разбив его на составные части и проверив выходные данные каждой части:

var entitySet = SelectedObject.MyObjectEntitySet;
var entitySetWithValues = entitySet.Where(p => p.AColumn.HasValue);
var entitySetGreater = entitySetWithValues.Where(p => p.ADate >= DateTimeValue);

... и пр.

...