实体到json错误 - 在序列化类型的对象时检测到循环引用

11 .net c# json entity-framework asp.net-mvc-4

尝试将实体对象转换为JSON字符串时发生以下错误.我正在使用C#MVC4代码首先进行数据库设计.因为FK和表之间的关系会产生这个问题.解决方法是什么?

序列化System.Data.Entity.DynamicProxies.User类型的对象时检测到循环引用

我的代码是

  User ma = db.user.First(x => x.u_id == id);
  return Json(ma, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)

kum*_* DK 28

因为它试图加载子对象,它可能会创建一个永远不会结束的圆形循环(a => b,b => c,c => d,d => a)

您可以仅在特定时刻关闭它,如下所示.除非在您的对象上调用Include方法,否则dbcontext不会加载客户子对象

  db.Configuration.ProxyCreationEnabled = false;
  User ma = db.user.First(x => x.u_id == id);
  return Json(ma, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)


小智 5

我的问题通过使用此解决:

//initialize model db
testdbEntities dc = new testdbEntities();
//get employee details 
List<Employee1> lst = dc.Employee1.ToList(); 
//selecting the desired columns
var subCategoryToReturn = lst.Select(S => new {
    Employee_Id = S.Employee_Id,
    First_Name = S.First_Name,
    Last_Name = S.Last_Name,
    Manager_Id = S.Manager_Id
});
//returning JSON
return this.Json(subCategoryToReturn , JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)