.Net MVC 多级数据结构
本文关键字:数据结构 多级 MVC Net | 更新日期: 2023-09-27 17:55:16
我的解决方案中目前有 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();
我无法弄清楚的是如何在项目的每个所有者部分中填充位置名称。
我有一种感觉,这是我没有抓住的简单事情。
提前感谢,基思·克拉克
可以在Include()
方法调用中引用子对象。
例如:
var projects = _context.Projects.Include(p => p.Owner).Include(p => p.Owner.Location).ToList();
您可以多次调用包含子对象:
var projects = _context.Projects.Include(p => p.Owner).Include(p => p.Owner.Location).ToList();