2012-04-13 76 views
0

这应该是一个容易回答的问题,但我无法真正弄清楚。 这里的情况:实体框架:选择其子实体具有特定标志集的所有实体

我使用实体框架4.1作为ORM使用Code First。我已经定义了一个非常复杂的对象模型,并且一切运作良好。我的模型的

部分看起来像这样(为清楚的缘故留下不重要的部分了):

public class Tier1 
{ 
public virtual ICollection<Tier2> t2 {get; set;} 
} 

public Class Tier2 
{ 
public virtual Tier3 t3 {get; set;} 
} 

public Class Tier3 
{ 
public bool isActive 
} 

我怎样才能制定我的声明,以便检索tier1元素,包括只tier3isActive设置为实体true

context.Tier1s.Where(???) 

回答

4

我假设tier2只有一个tier3是吗?在你的代码中似乎是这样。如果是这样的话试试这个:

var myTiers = context.Tier1s 
    .Where(tier => tier.t2.Any(tier2 => tier2.t3.isActive)) 
    .ToList();