有没有什么方法可以解决 LINQ 与 EF6 中的循环问题,在我的例子中,有以下三个类:
第一:员工等级:
public class staff
{
[Key]
public int ID { get; set; }
public string Name {get;set;}
public int ClassId { get; set; }
public virtual Class Classes { get; set; }
}
第二:班级班级:
public class Classes {
public int Id { get; set; }
public string ClassName { get; set; }
public virtual ICollection<StaffClass> StaffClasses { get; set; }
}
第三:StaffClass 班级:
public class StaffClass{
public int ID { get; set; }
public int StaffId { get; set; }
public virtual Staff Staffs { get; set; }
public int ClassId { get; set; }
public virtual Class Classes { get; set; }
}
当尝试从 Context 获取数据时
Context.Staffs.Include(s => s.StaffClass.Select(f=>f.Classes))
上述查询的结果:
[{
"Id": 4,
"Name": "Teacher",
"StaffClass": [{
"ID": 13,
"ClassId": 6,
"Classes": {
"Id": 6,
"ClassName": "S1",
"StaffClasses": [{
"ID": 27,
"ClassId": 6
}, {
"ID": 33,
"ClassId": 6
}]
}
}]
}]
预期结果仅返回人员和班级,而无需在班级内再次加载人员班级
我尝试将延迟加载设置为false
in Context
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
但我得到相同的结果