我的域名模式是:
图书
public class Book
{
public int Id { get; set; }
public string Name { get; set; }
public int ReleaseYear { get; set; }
public virtual ICollection<Store> Stores { get; set; }
}
商品
public class Store
{
public int Id { get; set; }
public string Name { get; set; }
public int BookId { get; set; }
public virtual Book Book { get; set; }
public virtual ICollection<StoreLocation> Locations { get; set; }
}
StoreLocation
public class StoreLocation
{
public int Id { get; set; }
public string Address { get; set; }
public int StoreId { get; set; }
public virtual Store Store { get; set; }
}
如何包含Book
的所有级别(和子级别)?
public Book GetBookById(int Id)
{
return this._DbContext.Books
.Include(p => p.Stores)
.FirstOrDefault(p => p.Id == Id);
}
我尝试了什么?
.ThenInclude(p => p.StoreLocation)
不起作用。答案 0 :(得分:1)
您必须按照以下所示进行操作。
return this._DbContext.Books.Include(p => p.Stores).ThenInclude(q => q.Locations)
.FirstOrDefault(p => p.Id == Id);
注意:有时VS没有正确显示智能。所以要注意intellisense:D。一个解决方案可能就是关闭VS并重新启动它的新实例。如果它没有工作,只需键入你想要的东西,而不依赖于智力。之后它编译并正常工作。