次のようなモデルを想定します。
class public Post
{
public int Id {get; set;}
public virtual ICollection<Comment> Comments {get;set;}
}
投稿/インデックスページに、各投稿のコメント数(すべての投稿のコメントの総数ではない)とともに投稿のリストを表示したいと思います。
1:使用する場合
context.Posts.Include("Comments")
関連するすべてのコメントのエンティティ全体が読み込まれます。実際、必要なのはコメントの数だけです。
2:各投稿の数を1つずつ取得する場合:
var commentCount = context.Entry(post)
.Collection(p => p.Comments)
.Query()
.Count();
それはN+1の問題です。
誰かが正しい方法を知っていますか?
ありがとうございました!