序列化类型为“System.Data.Entity.DynamicProxies..."对象时检测到循环引用
Posted xiemin-minmin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列化类型为“System.Data.Entity.DynamicProxies..."对象时检测到循环引用相关的知识,希望对你有一定的参考价值。
这是因为EF外键引起的序列化问题。
解决方案:
context.Configuration.ProxyCreationEnabled = false;
这里我用的是一个基类控制器用于被继承 返回EF实例前加上这段代码就可以了
1 //用于被继承 2 public class BaseController : Controller 3 4 public CucuCarEntity db 5 6 get 7 8 //从当前线程中获取该对象 9 CucuCarEntity db = CallContext.GetData("DB") as CucuCarEntity; 10 //判断该对象是否为空 11 if (db == null) 12 13 //空的话就实例该对象 14 db = new CucuCarEntity(); 15 //赋值 16 CallContext.SetData("DB", db); 17 18 //序列化类型为“System.Data.Entity.DynamicProxies.ActionInfo_”的对象时检测到循环引用。 加上这个就OK了 19 db.Configuration.ProxyCreationEnabled = false; 20 //返回 21 return db; 22 23 24
加粗标黄那句代码就可以解决这个Bug
以上是关于序列化类型为“System.Data.Entity.DynamicProxies..."对象时检测到循环引用的主要内容,如果未能解决你的问题,请参考以下文章
无法将匿名类型从“System.Linq.IQueryable”转换为“System.Data.Entity.Core.Objects.ObjectQuery”
为啥实体框架 6.1.3 抛出“无法加载类型‘System.Data.Entity.Infrastructure.TableExistenceChecker’”
找不到源类型“System.Data.Entity.DbSet”的查询模式的实现
Entity Framework优化一:引发了“System.Data.Entity.Core.EntityCommandExecutionException”类型的异常
不能使用“System.Data.Entity.Core.Objects.ObjectQuery”类型的实例调用
无法加载实体框架提供程序类型“System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer”