2016-08-05 11 views
1

asp.netエンティティ内の異なるテーブルからデータを数える:は、エンティティを含めると、私は2つのテーブル持って

Talbe 1 - アイテム

id | item | categoryId 
________________________ 
1 | item1 |  1 
2 | item2 |  2 
3 | item3 |  2 

表2 - カテゴリー

categoryid | categoryName 
___________________________ 
1   | iphones 
2   | ipads 
3   | ipods 

Talbe 1は動的です。つまり、ユーザーはアイテムを追加します.Viewがあり、CategoryとNumbを表示するテーブルを表示したいとします。カテゴリ内のアイテムの数 私はエンティティを使用しています。

マイモデル

項目

public int id { get; set } 
public string item { get; set; } 
public virtual Category Category { get; set; } 

カテゴリー

public int id { get; set; } 
public string categoryName { get; set; } 
public virtual Icollection<Item> Items { get; set; } 

だから私は混乱してどの項目でデータをカウントし、カテゴリに接続します。おかげさまで

+0

あなたの質問には、何が必要ですか? 'Cascade DropDownList' – Codeone

+0

カテゴリのリストを私のビューに渡したいと思っています。そして、各カテゴリの隣にcategoryNameのようなカテゴリのアイテムの数を表示したいと思います。 items_in_category .... –

答えて

1

カテゴリを照会するときにアイテムプロパティでLINQ Countメソッドを使用できます。

ビュー用のビューモデルを作成します。強く型付けされ

public class CategoryVm 
{ 
    public int Id {set;get;} 
    public string Name {set;get;} 
    public int ItemCount {set;get;} 
} 

とあなたのビューで今すぐあなたのGETのアクションメソッドでは、あなたがカテゴリテーブルを照会するLINQを使用することができますし、CategoryVm

public ActionResult Categories() 
{ 
    var db = new YourDbContext(); 
    var categoryVmList = db.Categories.Select(x=> new CategoryVm { 
                Id=x.Id, 
                Name=x.Name, 
                ItemCount = x.Items.Count() } 
              ).ToList(); 
    return View(categoryVmList); 
} 

のコレクションに結果を予測(Categories.cshtmlCategoryVmのリストにリストを反復処理し、必要に応じてプロパティ値を表示することができます。

@model List<CategoryVm> 
<h2>Categories</h2> 
@foreach(var cat in Model) 
{ 
    <div> 
    <p>@cat.Name <span>@cat.ItemCount</span></p> 
    </div> 
} 
+0

ありがとうございましたが、今度は "次のEntitySet/AssociationSet - CategoryVmsにマッピングが指定されていません" –

+0

CategoryVmはビュー用に作成したビューモデルです。そのためにマッピングを行う必要はありません。エンティティオブジェクト値を読み込み、このビューモデルオブジェクトに割り当てています。このエラーが発生しているのはどのラインですか?他の場所でこのクラスを使用していますか? – Shyju

+0

私はCategoryVmを他の場所で使用していませんが、 "エンティティまたは複合型 'Model.CategoryVm'をLINQ to Entitiesクエリで構築できません。 –

関連する問題