Linq 实体框架核心过滤器由一个实体';s系列
我试图根据嵌套集合中的数据检索所有实体。 我有一个家庭和一个成人对象,还有一个DbContext:Linq 实体框架核心过滤器由一个实体';s系列,linq,filter,entity-framework-core,Linq,Filter,Entity Framework Core,我试图根据嵌套集合中的数据检索所有实体。 我有一个家庭和一个成人对象,还有一个DbContext: public class Family { // other properties public List<Adult> Adults { get; set; } public List<Child> Children{ get; set; } } public class Person {
public class Family {
// other properties
public List<Adult> Adults { get; set; }
public List<Child> Children{ get; set; }
}
public class Person
{
// other properties
public string FirstName { get; set; }
public string LastName { get; set; }
public string HairColor { get; set; }
}
public class FamilyContext : DbContext
{
public DbSet<Family> Families { get; set; }
// other stuff..
}
调试时,我可以看到,在包含之后,我拥有了所有的家庭,但只加载了红头发的成年人。所有其他家庭只有0个成年人
所以我想我可以根据加载的成人数量进行过滤。但这不起作用。它似乎只是在需要时加载所有成年人,最终结果是所有现有的家庭实体。我已经找了好几个小时了。发布后,我立即发现:
var result = ctx.Families.
Where(family => family.Adults.Any(adult => adult.HairColor.Equals("Red"))).
ToList()
var result = ctx.Families.
Where(family => family.Adults.Any(adult => adult.HairColor.Equals("Red"))).
ToList()