代码:
double cafeSales = db.InvoiceLines
.Where(x =>
x.UserId == user.UserId &&
x.DateCharged >= dateStart &&
x.DateCharged <= dateEnd)
.Sum(x => x.Quantity * x.Price);
错误:
由于实例化的值为 null,将值类型“Double”强制转换失败。查询必须使用可空类型。
我已经看到的内容:
由于实例化的值为 null,将值类型“Int32”强制转换失败
由于实例化的值为 null,将值类型“Decimal”强制转换失败
我尝试过的方法:
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给我。有什么想法吗?