У меня есть проект, написанный с C#
поверх платформы ASP.NET MVC 5 при использовании Entity Framework 6.2 ORM.
У меня есть следующие три модели сущностей
public class User
{
public int Id { get; set;}
public string name { get; set; }
public int BranchId { get; set; }
public virtual Branch Branch { get; set;}
}
public class Branch
{
public int Id { get; set;}
public string name { get; set; }
public int SectionId { get; set; }
public virtual Section Section { get; set;}
}
public class Section
{
public int Id { get; set;}
public string name { get; set; }
}
Я хочу иметь возможность загружать отношение ветвления для пользователя и отношение раздела на ветке.
Я сделал следующее
var users = DataContext.Users.Where(x => x.Id < 100)
.Include(x => x.Branch)
.Inlcude(x => x.Branch.Section)
.ToList();
Приведенный выше код соединяет таблицу users
с таблицей branches
.Но затем вызывает 100 отдельных запросов к таблице разделов для получения нужных данных.
Как правильно использовать Entity Framework 6.2 для получения пользовательских данных вместе с веткой и сечением ветви, избегая при этом сценария N + 1