CODE:
double cafeSales = db.InvoiceLines
.Where(x =>
x.UserId == user.UserId &&
x.DateCharged >= dateStart &&
x.DateCharged <= dateEnd)
.Sum(x => x.Quantity * x.Price);
Ошибка:
Приведение значения в значение типа "Двойной" не выполнено, потому что материализованное значение равно нулю. Либо общий параметр типа результата, либо запрос должен использовать тип с нулевым значением.
ЧТО Я УВИДЕТЬ УЖЕ:
Недопустимое значение cast для значения 'Int32', потому что материализованное значение равно null
Признак типа "Десятичный" не выполнен, потому что материализованное значение равно null
ЧТО Я ИСКЛЮЧАЮ:
double cafeSales = db.InvoiceLines
.Where(x =>
x.UserId == user.UserId &&
x.DateCharged >= dateStart &&
x.DateCharged <= dateEnd)
.DefaultIfEmpty()
.Sum(x => x.Quantity * x.Price);
и
double? cafeSales = db.InvoiceLines
.Where(x =>
x.UserId == user.UserId &&
x.DateCharged >= dateStart &&
x.DateCharged <= dateEnd)
.Sum(x => x.Quantity * x.Price);
Ни одна из этих работ не работает. Я знаю, что причина проблемы в том, что в этой таблице нет строк в UserId, в которые я перехожу. В этом случае я бы предпочел, чтобы Sum() только что вернул мне 0. Любые идеи?