この質問は、どちらのアプローチが優れているのか、それとも全く重要でないのかについてです。だから、私はそう常にナビゲーションプロパティを使用するか、.Whereクエリを使用する必要がありますか?
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
と問題がある
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
参照される1つのカテゴリーのようなクラス項目を持っていると言うとき、カテゴリをユーザーがクリックすると、そのカテゴリ内のすべての項目リストに出力する必要がありますので、その項目のカテゴリを行う必要があります。
私は
_context.Items.Where(c => c.Category.Id == id);
のようなものを使用し、仮想メンバを削除することができます。だから、唯一の
{
"Id": 1,
"Name": "String",
"Category": [
{
"Id": 1,
"Name": "CName",
"Items": []
},
{
"Id": 1,
"Name": "CName",
"Items": []
}
]
}
:私はクライアントのためのアイテムテーブルのJSONデータを取得するためにWEBAPIを使用する場合、それはこのようなものを出力するので、私はこれを聞いて、私は「欲しい」なぜそのメンバーを削除するには、なぜ 理由がありますCategoryモデルのナビゲーションプロパティを持つ問題は、アイテムのリストを要求するときに、この「アイテム」[:]も私に送信するということです。 それは私や何かに影響を与えているようなものではないので、私はNavigationアプローチか.Whereアプローチを使用すべきかどうかを知りたい。それとも、私は考慮すべき他の方法がありますか?
個人的には、クエリのナビゲーションプロパティを使用して、匿名クラスまたはシリアル化されるカスタムクラスのいずれかにプロジェクト/選択することをお勧めします。 – juharr