Метод Include () працює досить добре для списків об’єктів. Але що робити, якщо мені потрібно пройти два рівні глибоко? Наприклад, наведений нижче метод поверне ApplicationServers з включеними тут властивостями. Однак ApplicationsWithOverrideGroup - це ще один контейнер, який містить інші складні об'єкти. Чи можу я також включити () на цю властивість? Або як я можу змусити цю властивість повністю завантажити?
Як зараз, цей метод:
public IEnumerable<ApplicationServer> GetAll()
{
return this.Database.ApplicationServers
.Include(x => x.ApplicationsWithOverrideGroup)
.Include(x => x.ApplicationWithGroupToForceInstallList)
.Include(x => x.CustomVariableGroups)
.ToList();
}
Поповнюватиметься лише властивість Enabled (нижче), а не властивості Application або CustomVariableGroup (нижче). Як мені це зробити?
public class ApplicationWithOverrideVariableGroup : EntityBase
{
public bool Enabled { get; set; }
public Application Application { get; set; }
public CustomVariableGroup CustomVariableGroup { get; set; }
}
Expression must be a member expression
при спробі це: Для того, щоб включати в себе колекцію , а потім рівень збору один вниз:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
.