我目前在我的解决方案中有3个模型:项目,所有者,位置。
我正在尝试创建一个列出所有项目的表,包括所有者名称和位置,例如:
Project Name Owner Location
----------------------------------------------------------
Project 1 Keith Main Office
Project 2 Brian Asia
Project 3 Susan Germany
项目模型定义为:
public class Project
{
public int Id { get; set; }
public string ProjectName { get; set; }
public int OwnerId { get; set; }
public Owner Owner { get; set; }
}
所有者模型定义为:
public class Owner
{
public int Id { get; set; }
public string Name { get; set; }
public int LocationId { get; set; }
public Location Location { get; set; }
}
位置模型定义为:
public class Location
{
public int Id { get; set; }
public string Name { get; set; }
}
每个表都通过基于Id值的关系链接:
Project.OwnerId => Owner.Id
Owner.LocationId => Location.Id
到目前为止,我已经能够确定如何检索所有项目的列表,并通过在我的控制器中使用以下代码将所有者名称包含在列表中:
var projects = _context.Projects.Include(p => p.Owner).ToList();
我无法弄清楚如何在项目的每个所有者部分填充位置名称。
我感觉这很简单,我只是没有把握。
提前致谢, 凯斯克拉克
答案 0 :(得分:0)
您可以在Include()
方法调用中引用子对象。
例如:
var projects = _context.Projects.Include(p => p.Owner).Include(p => p.Owner.Location).ToList();
答案 1 :(得分:0)
您可以使用子对象调用多次包含:
var projects = _context.Projects.Include(p => p.Owner).Include(p => p.Owner.Location).ToList();