我创建了一个 ASP.NET Core Web API 应用程序来访问 SQL 数据库。
然后,我使用脚手架生成 3 个表(TB1、TB2、TB3)和 DbContext 的模型。
TB1
model 包含其所有属性,但还包含一个LIST<>
forTB2
类,如下所示:
public virtual ICollection<TB2> TB2s { get; set; } = new List<TB2>();
TB2
model 包含其所有属性,但还包含一个LIST<>
forTB3
类,如下所示:
public virtual ICollection<TB3> TB3s { get; set; } = new List <TB3>();
在控制器中,我包含了 TB2
[HttpGet]
public async Task<IEnumerable<Patient>> Get() => await _context.TB1s.Include(c => c.TB2s).ToListAsync();
这有效!
但模型仍然返回空TB3s : [ ]
所以我将以下代码添加到 TB1 类中
public virtual ICollection<TB3> TB3s { get; set; } = new List<TB3>();
现在我可以尝试将其包含在控制器方法中:
[HttpGet]
public async Task<IEnumerable<Patient>> Get() => await _context.TB1s.Include(c => c.TB2s).Include(p => p.TB3s).ToListAsync();
但它仍然不起作用。任何帮助是极大的赞赏。
当你有一个多级模型时,你应该使用ThenInclude方法:
阅读相关数据的热切加载以获取更多信息