0

这是我的代码:

var finiGames = myRepos.Games
                       .Where(x => x.StatusGameId == (int)StatusGameEnum.Finish 
                              && x.EndDateTime > DateTime.Today)
                       .DefaultIfEmpty();
//error line
decimal? sum = finiGames.Sum(x => x.WinCost);

我得到的错误:

转换值类型“十进制”时出错,因为 materializuemoe 值为空。类型参数或请求使用允许值为 null 的类型的总体结果。

获得 a 的正确方法是decimal?什么?

4

3 回答 3

4

您需要WinCostnullable decimalSum

decimal? sum = finiGames.Sum(x => (decimal?)x.WinCost);
于 2012-05-14T17:33:27.507 回答
0
decimal sum = ((decimal?)finiGames.Sum(x => x.WinCost)) ?? 0;
于 2012-05-14T17:20:48.607 回答
0

尝试添加ToList()finiGames. 它可能会影响您的性能,但 EF 可能无法处理数据 (SQL) 层中的转换。

于 2012-05-14T17:33:46.673 回答