2017-04-05 14 views
0

私はユーザテーブルとコミュニティテーブルを持っています。ユーザーは複数のコミュニティに参加でき、コミュニティには複数のユーザーが参加できます。だから私はCommunityUserという名前の関係テーブルを持っています。 CommunityUserテーブルにはユーザーIDコミュニティIDがあり、どのユーザーがどのコミュニティに登録されているかを定義します。 私は私検索ビューに表示したいことは、私はコミュニティロゴ@foreachループを備えたコミュニティ表からタイトル詳細を表示していますが、私はまた、カウントを追加したい This is somewhat same as Facebook Groupsmvcの単一ビュー内のあるテーブルの各エントリに対する各エントリのカウント数

です各コミュニティIDのCommuntyUser表 はここにここに私のコミュニティモデルクラス

public class Community 
{ 
    [Key] 
    public int CommunityID { get; set; } 

    [Required] 
    public string CommunityName { get; set; } 

    public string CommunityAbout { get; set; } 

    public string CommunityLogo { get; set; } 

    public int PrivacyID { get; set; } 

    //I am trying to get members count using this 
    public virtual IEnumerable<CommunityUser> CommunityUsers { get; set; } 


} 

である私のコントローラ、私は私のビュークラスであるここでは、この

public ActionResult ShowSearchResults(string SearchQuery) 
    { 


     var communitySearch = from m in db.Communities 
           select m; 

     if (!String.IsNullOrEmpty(SearchQuery)) 
     { 
      communitySearch = communitySearch.Where(s => s.CommunityName.Contains(SearchQuery)); 
     } 



     return View(communitySearch); 
    } 

を適用しています機能です。私は余分なコードを削除して、どこに私がCommunityUser Tableからのカウントが必要かを述べました。

@foreach (var item in Model) 
{ 


    <div class="row"> 


     <div class="col-md-4"> 

      @Html.DisplayFor(modelItem => item.CommunityName) 
      <br> 
      @ViewBag.Count 

    <!--Need to count of members in that community--> 
    <!--means How many times that communityID appeared in CommunityUser table--> 

     <br> 
     @Html.DisplayFor(modelItem => item.CommunityAbout) 

    </div> 

</div> 

}

答えて

0

私があると考えることができる一つの簡単な修正は 次の性質を持っている必要があり、新たなモデルを作成し、私は名前が付けられますことはありCommunityWithUserCount

  • コミュニティ
  • USERCOUNT
  • として

変更後、既存のコードe to follwoing

var communityQuery = db.Communities.Include("CommunityUsers").AsQueriable(); 
    if (!String.IsNullOrEmpty(SearchQuery)) 
    { 
     communityQuery = communityQuery.Where(s => s.CommunityName.Contains(SearchQuery)).AsQueriable(); 
    } 

var yourCustomObject = communityQuery.Select(elem => new CommunityWithUserCount() 
{ 
Community = elem, 
Count = elem.CommunityUser.Count() 
}).ToList(); 

私はこれがうまくいきたいと思います。私はこのコードをコンパイル/テストしてはならない。あなたの問題を解決すると思うアイデアです。

+0

そして、ビュークラスでこのカウントリストにアクセスするにはどうすればよいですか? –

+0

これで古いモデルを渡すのではなく、このカスタムモデルを渡すのではなく、コミュニティユーザーカウントを取得します。 – Naveen

関連する問題