2017-02-17 4 views
0

のカウントを取得する私は、私はブログのポストのセットの上に置かれている各ブログ・コメントのカウント数を実装する必要が...いくつかの時間のためにこれでは、ポストのコメントEntity Frameworkの

を苦労しています。

public class Blog 
{ 

    public int BlogId { get; set; } 
    public string BlogPostName { get; set; } 
    // ... // 
    public virtual ICollection<BlogPostComments> BlogPostComments { get; set; } 
} 

public class BlogPostComments 
{ 
    public int BlogPostCommentsId { get; set; } 
    public string NameOfUser { get; set; } 
    public string CommentsOfUser { get; set; } 
    public Nullable<System.DateTime> PostedDate { get; set; } 
    public Nullable<int> BlogId { get; set; } 
    public virtual Blog Blog { get; set; } 
} 

1つのBlogPostには0以上のBlogPostCommentsを含めることができます。 たとえば、BlogId 1,2,3が含まれる整数int [] idsの配列からの入力があります。これらのIDコメントに関連するすべてを辞書形式で取得したいと思います。 、3件のコメントを持っている最初のブログ投稿二ブログ投稿は5件のコメントや第三ブログ投稿は7件のコメントが持っている - この

public IHttpActionResult Get([FromUri] int[] ids) 
{ 

    var blogPosts = (from blogPost in EntityContext.BlogPostComments 
        where ids.Contains(customer.BlogId.Value) 
        select blogPost); 
    int numberOfAllComments = blogPosts.Count(); 

    return Ok(numberOfAllComments); 
} 

ですべてのブログ投稿にコメントの番号を取得することができi`m瞬間 は言ってみましょう。

最初の投稿のコメントと2番目の投稿のコメントを分離し、それらをEntity Frameworkとのキー値ペアとして返す方法はありますか?私のクエリを構築したり変更したりしてください。

答えて

2

あなたはこのような何か行うことができる必要があります:私はあなたが魅力のように動作し、それをたくさん感謝言って最初たい

var postsAndComments = blogRepo 
    .Where(blog => ids.Contains(blog.BlogId)) 
    .Select(p => new { id = p.BlogId, comments = p.BlogPostComments.Count() }) 
    .ToDictionary(p => p.id, p => p.comments); 
+0

を!!!!あなたが私に何であるかの説明を少し与えてくださいすることができこのコードの平和の背後に流れてください。 – NDym