标题有点令人困惑,但我想不出另一种说法。
因此,正如标题所说,我在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; }
}
CustomerMenu
表:
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
记录/模型返回链接到给定客户的菜单记录。
所以,我的问题是:有没有办法在一次调用中检索(检索与客户关联的子菜单记录),而无需手动循环浏览每个菜单记录并检查它是否已链接给客户?
感谢。
答案 0 :(得分:1)
试试这个
(from a in context.Menu
join c in context.CustomerMenu on a.ParentMenuID equals c.ID
select a,c).ToList();