.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();

我无法弄清楚的是如何在项目的每个所有者部分中填充位置名称。

我有一种感觉,这是我没有抓住的简单事情。

提前感谢,基思·克拉克

.Net MVC 多级数据结构

可以在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();