在使用Entity Framework 6.2 ORM时,我在ASP.NET MVC 5框架的顶部有一个用C#
编写的项目。
我有以下三个实体模型
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
表。但是随后导致对sections表的100个单独查询获得所需的数据。
如何正确使用Entity Framework 6.2来获取用户数据以及分支和分支的部分,同时避免出现N + 1情况?