entity framework递归地包括来自包含集合的每个实体的集合

我有以下几点,我试图在这些国家的城市中包括人们的地址。

Country country = _db.Countries .Include(p=>p.Cities.People.????) .Where(....) 

不确定如何工作?

从文档 :

要包含集合,集合和引用两个级别:

  query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference))). 

所以在你的情况下尝试

 Country country = _db.Countries .Include(c=>c.Cities.Select( cc => cc.People.Select( p => p.Addresses))) .Where(....) 

访问此扩展方法需要using System.Data.Entity;的指令using System.Data.Entity;

您必须为对象层次结构树中的每个级别添加.Include调用:

  var result = db.Countries .Include(m => m.Cities) .Include(m => m.Cities.Select(v => v.People)) .Where(....) 

编辑:D.Stanley的答案在紧凑的代码方面更好,并且工作得很好,我倾向于在模块性方面更喜欢这种语法。