在我的情况下,有没有办法解决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 Class:
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.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
}]
}
}]
}]
在classess
中仅返回没有加载人员类的人员和班级的预期结果我尝试在false
Context
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
但我得到了相同的结果
答案 0 :(得分:0)
如果我理解正确,这可能是JSON序列化的问题:
试试这个:
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings
.ReferenceLoopHandling =
Newtonsoft.Json.ReferenceLoopHandling.Ignore;
这将忽略指向对象的引用。