Entity framework core 包含,然后包含多个级别的集合
我正在尝试查询具有多个集合级别的实体,以及在单个级别上具有多个集合的实体。我正在使用Include,然后使用Include,但没有太大的成功。我发现的示例没有在同一级别上有多个集合,我也没有将该技术应用到我的用例中 这是我的实体的简化说明。具有[]的是集合:Entity framework core 包含,然后包含多个级别的集合,entity-framework-core,entity-framework-core-2.1,Entity Framework Core,Entity Framework Core 2.1,我正在尝试查询具有多个集合级别的实体,以及在单个级别上具有多个集合的实体。我正在使用Include,然后使用Include,但没有太大的成功。我发现的示例没有在同一级别上有多个集合,我也没有将该技术应用到我的用例中 这是我的实体的简化说明。具有[]的是集合: Home Areas[] Area Name Categories[] Name Recommendations[]
Home
Areas[]
Area
Name
Categories[]
Name
Recommendations[]
Subcategories[]
Name
Recommendations[]
Area
Name
Categories[]
Name
Recommendations[]
Subcategories[]
Name
Recommendations[]
我已经走了这么远:
result = Home
.Include(x => x.Areas)
.ThenInclude(a => a.Categories)
.ThenInclude(c => c.Subcategories)
.ThenInclude(s => s.Recommendations)
但是,这会遗漏类别[]。建议[]集合。这是因为在同一级别上有两个集合-建议[]和子类别[]
对于如何构造此查询以便获得所需结果,是否有任何建议
谢谢。您必须为每个级别调用Include:
result = Home
.Include(x => x.Areas)
.ThenInclude(a => a.Categories)
.ThenInclude(c => c.Subcategories)
.ThenInclude(s => s.Recommendations)
.Include(x => x.Areas)
.ThenInclude(a => a.Recommendations)
您必须按如下方式编写查询:
result = Home
.Include(x => x.Areas)
.ThenInclude(a => a.Categories)
.ThenInclude(s => s.Recommendations)
.Include(x => x.Areas)
.ThenInclude(c => c.Subcategories)