2012-04-13 4 views
0

Это должен быть простой ответ на вопрос, хотя я не могу это понять. В ситуации:Entity Framework: выберите все сущности, чьи сущности имеют определенный флаг.

Я использую сущность framework 4.1 как ORM, используя код 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 элементов, включая только tier3 лиц, которые имеют isActive набор для true?

context.Tier1s.Where(???) 

ответ

4

Я предполагаю, что tier2 имеет только один уровень 3 да? Это похоже на ваш код. Если да, попробуйте следующее:

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