双11上云狂欢,0.5折起爆品开抢
Logo

博客

2020-8-2 xoyozo 转载请注明出处

The cast to value type 'System.Int32' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type.

在 EF 查询数据库时发生:

var list = db.TableA.Select(a => new
           {
               a.Id,
               bSum = a.TableB.Sum(b => b.Num),
           }).ToList();

本例中 TableB 有外键关联到 TableA.Id,TableB.Num 为 int,而非 int?。

原因是 EF 以为 Sum 的结果可能为 Nullable<int>,将代码修改如下即可正常:

var list = db.TableA.Select(a => new
           {
               a.Id,
               bSum = (int?)a.TableB.Sum(b => b.Num) ?? 0,
           }).ToList();


791 阅读

最新发布

13 天前
OBS 自动切换场景 93 次阅读
26 天前
Channel was closed. 61 次阅读
29 天前

大家在看

841 次阅读
98 次阅读
1159 次阅读
344 次阅读