locations
それぞれが独自のリストを持っているさまざまなものがありますProducts
。- それぞれ
Product
がに属しSubCategory
ます。 - それぞれ
SubCategory
がに属しCategory
ます。
Categories
が与えられたときにリストを表示する必要がLocation
あるため、その場所の製品に関連付けられる可能性のあるカテゴリのリストを抽出できるViewModelが必要です。
私はこのようなことをしたいと思っています(私のViewModel):
public class LocationSummaryViewModel
{
public Location Location { get; set; }
private ICollection<Category> categories;
public ICollection<Category> Categories
{
get
{
if ( Establishment != null )
{
foreach (var item in Location.Products)
{
categories.Add(item.SubCategory.Category);
}
return categories;
}
else
{
Categories.Add(new Category { Name = "Default Category" });
return categories;
}
}
}
}
categories
ただし、インスタンス化されることはないため、これは構文的には機能しません。また、これだけのロジックをViewModelに配置する必要があるかどうかもわかりません。
ViewModel内のロケーションに含まれる製品のリストからカテゴリ情報を描画するロジックを配置することで、正しい方向に進んでいますか?それとも私はこれを非常に珍しい方法で行っていますか?
これをまったく奇妙な方法で行っている場合、Locationエンティティに含まれる製品のリストからカテゴリ情報を取得するためのより良い方法は何ですか?
参考までに、私のロケーションモデル:
public class Location
{
public int LocationId { get; set; }
public string Name { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
私の製品モデル:
public class Product
{
public int ProductId { get; set; }
public string Name { get; set; }
public int CategoryId { get; set; }
public virtual SubCategory SubCategory { get; set; }
public int LocationId { get; set; }
public virtual Location Location { get; set; }
}
と私のサブカテゴリモデル:
public class SubCategory
{
public int SubCategoryId { get; set; }
public string Name { get; set; }
public int CategoryId { get; set; }
public virtual Category Category { get; set; }
}
更新:私は以下に自分の質問に対する潜在的な回答を投稿しました-より良い回答/提案を歓迎します