在 Linq to SQL 中使用 sum 和 lambda 时,使用以下代码:
int query = (from f in odc.RDetails
where f.ticketID == int.Parse(ticket.ToString())
select f).Sum(x => x.Rate);
我收到以下错误:
不能将 null 值分配给 System.Int32 类型的成员,该类型是不可为 null 的值类型。
最佳答案
。您必须确保 x.Rate
是 int
,而不是 int?
(接受的 int
null
作为值)。
。如果查询没有元素,.Sum
将不会执行任何操作并返回 null
。选择一个默认值,例如 0
。
var query = from f in odc.RDetails
where f.ticketID == int.Parse(ticket.ToString())
select f;
int result = query.Any()
? query.Sum(x => x.Rate ?? 0) // use the ?? if x.Rate is an "int?".
: 0; // default value you can choose.
关于使用 lambda 和处理 null 的 Linq 2 SQL Sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10708677/