Linq 转换为值类型“Decimal”失败,因为具体化的值为null

Linq 转换为值类型“Decimal”失败,因为具体化的值为null,linq,Linq,我对此查询有问题,它抛出了一个错误 var TotalToDatePayable = ( from ori in db.GetAll<WMPORI>() where ori.CTMSysID == ctmSysId select ori.ExB4Taxes).Sum(); 我尝试了下面的代码,但没有解决我的问题: var TotalToDatePayable = (Deci

我对此查询有问题,它抛出了一个错误

var TotalToDatePayable = (  from ori in db.GetAll<WMPORI>()
                           where ori.CTMSysID == ctmSysId
                          select ori.ExB4Taxes).Sum();
我尝试了下面的代码,但没有解决我的问题:

 var TotalToDatePayable = (Decimal?)(  from ori in db.GetAll<WMPORI>()
                                      where ori.CTMSysID == ctmSysId
                                     select ori.ExB4Taxes).Sum()) ?? 0;
您需要将ori.exb4转换为十进制吗?在查询内部

var TotalToDatePayable = (from ori in db.GetAll<WMPORI>()
                          where ori.CTMSysID == ctmSysId
                          select (Decimal?) ori.ExB4Taxes).Sum() ?? 0;

这是有效的:var totalToDatePayment=来自db.GetAll中的ori,其中ori.CTMSysID==CTMSysID选择ori.ExB4Taxes.DefaultIfEmpty0.Sum@DmitryBychenko我以为这种缩进是Objective C独有的。现在我很难过。@Rawling 9:这种缩进在SQL中是典型的,Linq在问题中也模拟了这种缩进。这就是我要添加空格的原因。您只需在查询的开头再添加1个括号,就可以了。谢谢