Я очень смущен, и мне нужна помощь в понимании отложенной загрузки.Я думал, что настройка отложенной загрузки false приведет к загрузке всего объекта, включая дочерние элементы, но это не происходит для меня.Просматривая другие вопросы, я не мог найти адекватного ответа.
Сервер содержит список супервизоров, а каждый супервизор содержит список соединительных линий.
using (var db = new ProjectDatabase())
{
db.Configuration.LazyLoadingEnabled = false;
var dbServer = db.Servers.Include("Supervisors.Trunks").Single(s => s.Name == ArchiveName);
Console.WriteLine(dbServer.Supervisors.SelectMany(s=>s.Trunks).Count());
}
Приведенный выше код записывает 3 в строку консоли, что ожидается, поскольку сервер содержит 3супервизоры и каждый супервизор содержит 1 ствол.
using (var db = new ProjectDatabase())
{
db.Configuration.LazyLoadingEnabled = false;
var dbServer = db.Servers.Single(s => s.Name == ArchiveName);
Console.WriteLine(dbServer.Supervisors.SelectMany(s=>s.Trunks).Count());
}
Этот код (такой же, как первый, но без оператора include) записывает 0 в консоль.Я думал, что LazyLoadingEnabled = false будет загружать все супервизоры и транки автоматически.Мне нужны десятки различных типов дочерних объектов, поэтому я надеюсь на элегантное решение, которое не требует тонны операторов включения.Пожалуйста, помогите.