序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
2012-03-31 15:51
405 查看
序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
entity famework+asp.net mvc 做code first项目的时候,前台ajax请求到后台 JsonResult在后台返回 return Json(list, JsonRequestBehavior.AllowGet)的时候,出错:
序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用。
解决方法:
1.可以在查询的时候这样子
var list = from f in db.Categories //这里要select new select new { Id = f.Id, Name = f.Name, };
2.你可以尝试删除所有的导航属性的virtual关键字禁用延迟加载和创建代理,然后使用预先加载,而不是显式地加载所需的对象图:
public ActionResult GetAll() { return Json(Context.Categories .Include(o => o.Products) , JsonRequestBehavior.AllowGet); }
看起来像是不依赖于延迟加载,无论如何,因为你使用virtual属性延迟加载对象图,可能会造成现在的系列化的麻烦。
3.没有必要删除virtual关键字导航性能(这将使延迟加载的模型完全不可能)。这足以创建代理(以及禁用延迟加载)禁用代理扰乱序列一样,具体情况:
Context.Configuration.ProxyCreationEnabled = false;
这将禁用,仅适用于特定的上下文实例Context创建代理。
相关文章推荐
- 序列化类型为“System.Data.Entity.DynamicProxies.ActionInfo_”的对象时检测到循环引用。
- 为什么 序列化类型为“System.Data.Entity.DynamicProxies.Photos....这个会的对象时检测到循环引用。
- 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
- 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
- 序列化类型为“System.Data.Entity.DynamicProxies.ActionInfo_”的对象时检测到循环引用。
- 序列化类型为“System.Data.Entity.DynamicProxies.Photos....这个会的对象时检测到循环引用
- 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
- 自定义JsonResult解决 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
- 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
- C# DataTable 对象转换成Json时 出现 序列化类型为“System.Reflection.Module”的对象时检测到循环引用 的错误!
- 序列化类型为“System.Reflection.RuntimeModule”的对象时检测到循环引用
- 解决序列化类型为“System.Reflection.RuntimeModule”的对象时检测到循环引用。
- 在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型XXX的对象时检测到循环引用。
- System.InvalidOperationException: 生成 XML 文档时出错 这样的错误 序列化类型 xxx 的对象时检测到循环引用
- 序列化类型为“System.Reflection.Module”的对象时检测到循环引用
- ajax调用webservice返回DataTable "序列化类型为“System.Reflection.Module”的对象时检测到循环引用
- 在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型XXX的对象时检测到循环引用。
- ef 对象无法序列化的问题(System.Data.Entity.DynamicProxies)
- 序列化类型为XX的对象时检测到循环引用
- 使用json序列化类型为“ajax学习.DataSetComment+T_CommentDataTable”的对象时检测到循环引用。