转换为值类型'Decimal'失败,因为具体化值为null

Dev*_*per 18 linq

我遇到了这个查询的问题,它引发了一个错误.

var TotalToDatePayable = (  from ori in db.GetAll<WMPORI>()
                           where ori.CTMSysID == ctmSysId
                          select ori.ExB4Taxes).Sum();
Run Code Online (Sandbox Code Playgroud)

我试过下面的代码来自另一个类似的问题,但这并没有解决我的问题:

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

SLa*_*aks 29

您需要转换ori.ExB4Taxesdecimal?查询内部.

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