db.Projects.Select(x => new Statistic {
Posts = x.Members.Sum(m => m.Posts.Count())
})
为什么这段代码会抛出异常:
转换为值类型“System.Int32”失败,因为具体化值为 null。结果类型的泛型参数或查询必须使用可为空的类型。
这段代码工作正常
db.Projects.Select(x => new Statistic {
Posts = x.Members.SelectMany(m => m.Posts).Count()
})
?
结构很直观:
项目有很多成员。
会员有很多帖子。
public virtual ICollection<Post> Posts { get; set; }
编辑:最终工作代码
db.Projects.Select(x => new Statistic {
Posts = (int?)x.Members.Sum(m => m.Posts.Count()) ?? 0
})