タイトルは少し混乱しますが、これを別の言い方で考えることはできませんでした。Entity Framework - 他のテーブルに一致するレコードのみを取得する場合
タイトル通り、ASP.NETアプリケーションでEntity Framework Coreを使用しています。私は(私は無関係なフィールド/プロパティを残しておきます)この質問に関連するいくつかのテーブル/モデルを持っている:
Customer
テーブル:
public class Customer
{
public int ID { get; set; }
[MaxLength(100)]
public string Name { get; set; }
}
Menu
テーブル:
public class Menu
{
public int ID { get; set; }
public int? ParentMenuID { get; set; }
[MaxLength(50)]
public string Name { get; set; }
}
public class CustomerMenu
{
public int ID { get; set; }
public int MenuID { get; set; }
public int? CustomerID { get; set; }
}
私の目標は標準的なメニュー構造(メニューレコードは子供/親の関係でお互いにリンクされています)ですが、顧客はCustomerMenu
テーブルを介してリンクされている部分だけを見ることになります。
私の質問は、特定の顧客に関連付けられている子メニューレコードを取得する最良の方法は何ですか?
十分に簡単で、メニューの子メニューを取得する - 私はこのコードでそれを行うことができます。
var childMenus = _context.Menu.Where(m => m.ParentMenuID == id);
しかし、私は唯一のCustomerMenu
、レコードを経由して特定の顧客にリンクされているメニューのレコードを返すようにしたいです/モデル。
私の質問は、これは、手動で各メニューレコードを循環させずにチェックすることなく、1回の呼び出しで(顧客に関連付けられた子メニューレコードを取得する)顧客にリンクされていますか?
ありがとうございました。
を試してみてください? – mjwills
参加のためのmsdnサンプルを参照してください。https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b – jdweng
はい、私は参加しようとしています。しかし、エンティティフレームワークで最初にコードを使用しているので、それは私が慣れていたものと少し異なります。だから、私はエンティティのフレームワーク内から参加する方法を尋ねていると思います。 – Shaggs