db.Projects.Select(x => new Statistic {
Posts = x.Members.Sum(m => m.Posts.Count())
})
このコードが例外をスローする理由:
具体化された値が null であるため、値型 '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
})