Linq к Сумме Sql без записей

Я создаю метод, который собирает общие суммы в течение месяца. Проблема состоит в том, что не может быть, взимает за некоторые объекты в данном месяце, таким образом, никакие строки не были бы возвращены.

Я вижу, как это было бы ошибка без данных:

double fuelCost = (double)(from a in db.EquipmentFuelLogs
                           where a.wdEquipmentMainGeneralOID == vehicleKey &&    
                                (monthBeginDate < a.Date1 && a.Date1 < monthEndDate)
                           select a.TotalCost).Sum();

Что лучший подход не должен обнаружить топливные транзакции в течение того месяца и установить стоимость топлива на 0? Просто попытка ловит? Эта статья говорила о проблеме, но никаком решении.

9
задан Mike Wills 2 March 2010 в 10:44
поделиться

2 ответа

Я добавил catch, чтобы поймать ошибку. Другого решения я так и не нашел.

-10
ответ дан 3 November 2019 в 01:55
поделиться

Проблема в том, что where не возвращает последовательность, поэтому сумма не может работать, однако если вы используете .DefaultIfEmpty перед суммой, она работает нормально.

decimal? orderValue = 
    orders.Where(ee => ee.Name == "SomeName").DefaultIfEmpty().Sum(s => s.OrderCost);

Надеюсь, это поможет.

15
ответ дан 3 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: