Entity framework 使用.Include()急切地加载多个实体
我想急切地加载一个具有特定Id的a类实例。然后我想。包括与某个实例相关的每个B类实例和。包括与B实例相关的每个C类实例 这不起作用:Entity framework 使用.Include()急切地加载多个实体,entity-framework,entity-framework-6,Entity Framework,Entity Framework 6,我想急切地加载一个具有特定Id的a类实例。然后我想。包括与某个实例相关的每个B类实例和。包括与B实例相关的每个C类实例 这不起作用: var schoolyear = _context.Schoolyears .Include(s => s.SchoolclassCodes) .Include(s => s.TimeTableEntries) .SingleOrDefault(s =>
var schoolyear = _context.Schoolyears
.Include(s => s.SchoolclassCodes)
.Include(s => s.TimeTableEntries)
.SingleOrDefault(s => s.Id == schoolyearId);
最后一个.Include位于错误的级别。它必须与.school类代码相关
对于stronly typed.Include()是不可能的,还是必须使用弱化类型样式:
var schoolyear = _context.Schoolyears
.Include("SchoolclassCode.TimeTableEntries")
.SingleOrDefault(s => s.Id == schoolyearId);
class Schoolyear
{
public int Id { get; set;}
public ICollection<SchoolclassCode> {get;set;}
}
class SchoolclassCode
{
public ICollection<TimeTableEntry> {get;set;}
}
class TimeTableEntry
{
}
var schoolyear=\u context.Schoolyears
.Include(“SchoolclassCode.TimeTableEntries”)
.SingleOrDefault(s=>s.Id==学年Id);
班级学年
{
公共int Id{get;set;}
公共ICollection{get;set;}
}
班级代码
{
公共ICollection{get;set;}
}
类时间表条目
{
}
您也可以使用stongly类型的方法来完成
只需在Include
中进行选择查询,直到到达层次结构中应加载的最后一个实体:
var schoolyear = _context.Schoolyears
.Include(s => s.SchoolclassCodes
.Select(t => t.TimeTableEntries));
是的,它甚至对我所需要的单打或默认有效,谢谢。似乎我忽略了该站点上的.Select(),它就在那里: