Include 和 thenInlude 包含多个级别的集合

rea*_*kep 2 entity-framework-core entity-framework-core-2.1

我正在尝试查询具有多个集合级别和单个级别的多个集合的实体。我正在使用Include()ThenInclude(),但没有取得太大成功。我发现的示例在同一级别上没有多个集合,并且我没有运气将该技术应用到我的用例中。

这是我的实体的简化说明。带[]的是集合:

Home
   Areas[]
       Area
           Name
           Categories[]
               Name
               Recommendations[]
               Subcategories[]
                   Name
                   Recommendations[]
       Area
           Name
           Categories[]
               Name
               Recommendations[]
               Subcategories[]
                   Name
                   Recommendations[]   
Run Code Online (Sandbox Code Playgroud)

我已经走到这一步了:

result = Home
    .Include(x => x.Areas)
    .ThenInclude(a => a.Categories)
    .ThenInclude(c => c.Subcategories)
    .ThenInclude(s => s.Recommendations)
Run Code Online (Sandbox Code Playgroud)

然而,这错过了Categories[].Recommendations[]收藏。这是因为有两个同一级别的集合(Recommendations[]Subcategories[])。

对于构建此查询以便我可以获得所需结果的方法有什么建议吗?

谢谢。

Mét*_*ule 5

您必须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)
Run Code Online (Sandbox Code Playgroud)