Я думаю, вам нужно будет использовать свойства навигации, чтобы это было в любом случае эффективным.То, что вы показываете, возможно, но вы, скорее всего, в конечном итоге получите все сущности обратно, когда они вам не нужны.Из вашего примера видно, что у вас есть три объекта:
View1
View2
- ss -> отношение внешнего ключа к View1.aaa
View3
- ff -> отношение внешнего ключа к View1.bbb
Самым простым является определение этих ключей в базе данных, но вы можете определить их в конструкторе структуры сущностей.После того, как вы смоделировали отношения, все становится действительно просто ...
Так что полномочия View1 могут выглядеть так:
public class View1
{
public ICollection<View2> View2s { get; set; }
public ICollection<View3> View3s { get; set; }
}
Если у вас есть такая сущность, следующий код будет работать:
rep
.GetAllView1()
.Where(o => o.View2s != null &&
o.View2s.Count() > 0 &&
o.View3s != null &&
o.View3s.Count() > 0)
К этому моменту у вас есть коллекция объектов View1, все с 2 свойствами со связанными сущностями View2 и View3.