【发布时间】:2017-12-03 00:34:17
【问题描述】:
标题有点混乱,但我想不出另一种说法。
所以,正如标题所说,我在我的 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 记录/模型链接到给定客户的菜单记录。
所以,我的问题是:有没有一种方法可以在一次调用中执行此操作(检索与客户关联的子菜单记录),而无需手动循环浏览每个菜单记录并检查它是否已链接给客户?
谢谢。
【问题讨论】:
-
所以你要
join这两个表? -
查看 msdn 示例以进行加入:code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
-
嗯,是的,我正在尝试加入。但由于我首先在实体框架中使用代码,所以它与我习惯的有点不同。所以我想我在问如何从实体框架内进行连接。
标签: c# entity-framework linq entity-framework-core