[英]System.InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.String'
[英]Entity Framework Group BY causing Unable to cast object of type 'System.DBNull' to type 'System.String'
我正在尝试运行以下 EF 查询并在某些数据库实例上返回异常
//Contacts Stats summary
Dictionary<ContactStatusEnum, int> contactStats = (await context.Contacts.ToListAsync())
.GroupBy(n => n.Status)
.ToDictionary(x => x.Key, x => x.Count());
这导致异常异常:无法将“System.DBNull”类型的对象转换为“System.String”类型。
同时我执行了sql
SELECT status,COUNT(*) FROM contacts group BY STATUS
并且正在执行而没有任何错误。 另外,所有联系人记录都存在状态值
相同的代码适用于舞台或 DEV db
你可以修改如下
//Contacts Stats summary
Dictionary<ContactStatusEnum, int> contactStats = (await context.Contacts.Where(cn=>cn.status!=null).ToListAsync())
.GroupBy(n => n.Status)
.ToDictionary(x => x.Key, x => x.Count());
否则按照这个
//Contacts Stats summary
Dictionary<ContactStatusEnum, int> contactStats = (await context.Contacts.ToListAsync())
.GroupBy(n => n.Status ?? string.Empty)
.ToDictionary(x => x.Key, x => x.Count());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.