Я не могу найти способ загрузить объект из БД со всеми его связанными объектами. Относительно этой упрощенной модели (ID-свойства не показаны):EF: Загрузка связанных объектов связанных объектов
class MainClass
{
public virtual ICollection<FirstLevelClass> FirstLevelObjects {get; set;}
}
class FirstLevelClass
{
public virtual ICollection<SecondLevelClassA> SecondLevelObjectsA {get; set;}
public virtual ICollection<SecondLevelClassB> SecondLevelObjectsB {get; set;}
}
class SecondLevelClassA
{
public virtual int SomeValue {get; set;}
}
class SecondLevelClassB
{
public virtual int SomeValue {get; set;}
}
DbContext находится на "MainClass" -Объекты:
public SampleContext : DbContext
{
public DbSet<MainClass> MainClassObjects {get; set;}
}
Как можно загрузить MainClass-объект из БД со всеми первого и объекты второго уровня? Я могу сделать:
using (var context = new SampleContext())
{
var MainClassObjects = context.MainClassObjects.Include(p => p.FirstLevelObjects).ToList();
// ...move objects from the context to program logic...
}
но как я могу получить SecondLevelObjects? I'm хватает что-то вроде:
using (var context = new SampleContext())
{
var MainClassObjects = context.MainClassObjects.Include(p => p.FirstLevelObjects.SecondLevelObjects).ToList();
// ...move objects from the context to program logic...
}
Это даже возможно, или я должен адаптировать DbSets в DbContext?
На самом деле, если вы используете строку Include («FirstLevelObjects.SecondLevelObjects») , вам даже не нужно использовать Include («FirstLevelObjects») – ElDog
Я был немного не уверен, спасибо за ваше разъяснение. – VahidNaderi
Я даже пробовал это раньше, но он вообще не работал. Я даже не мог включить FirstLevelObjects. Может быть, я что-то упустил, попробую еще раз. – tafkab76