在EF Core中包含/ ThenInclude

时间:2018-03-15 10:15:39

标签: c# .net-core entity-framework-core

让我们说我有这样的数据库表:

Continent -> Countries -> Cities
                       -> Lakes

现在我想要加入它们

_db.Continents
 .Include(p => p.Countries)
   .ThenInclude(c => c.Cities)
 .Include(p => p.Countries)
   .ThenInclude(p => p.Lakes)

这是唯一的方式(通过包括国家两次)还是有其他方式?

2 个答案:

答案 0 :(得分:3)

从EF Core 2.1开始,实际上支持这一点。模式看起来像这样:

_db.Continents.Include(p => p.Countries).ThenInclude(c => c.Cities).ThenInclude((Country p) => p.Lakes)

答案 1 :(得分:-2)

如前所述EF仅包括国家一次。

为了更好的阅读,你可以这样写:

_db.Continents
 .Include(p => p.Countries.Select(s => s.Cities))
 .ThenInclude(p => p.Countries.Select(s => s.Lakes))