序列化类型为“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

原文地址:https://www.cnblogs.com/xiemin-minmin/p/11429130.html

时间: 2024-10-14 22:20:23

序列化类型为“System.Data.Entity.DynamicProxies..."对象时检测到循环引用的相关文章

在mvc返回JSON时出错:序列化类型为“System.Data.Entity.DynamicProxies.Photos....这个会的对象时检测到循环引用 的解决办法

在MVC中返回JSON时出错,序列化类型为“System.Data.Entity.DynamicProxies.Photos....这个会的对象时检测到循环引用. public ActionResult GetSdirsbyFdirid(int id) { // db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; List<Seconddirectory> lis

MVC+EF 序列化类型为“System.Data.Entity.DynamicProxies.__的对象时检测到循环引用

用MVC+EF做简单查询时,返回json格式数据出现问题 原代码: public ActionResult JSon({ NorthwindEntities db = new NorthwindEntities(); Employees per = db.Employees.Where(u => u.EmployeeID == 1).FirstOrDefault(); return Json(per, JsonRequestBehavior.AllowGet); } 报错: 个人记录最简单而行之

序列化类型为&quot;xx”的对象时检测到循环引用。

错误: 序列化类型为“System.Data.Entity.DynamicProxies.PClass_F1D9DFE16F480B2B87DBB269E781139A9B4611C923176D35DD120104EDEFC17C”的对象时检测到循环引用. 背景:这是在使用MVC+EF 进行ajax post请求的时候遇到的 原因:EF  Model1和Model2进行了相互引用,就是说这两个在数据中的表有主外键关系的 解决: IList<PClass> pclassLst = PClass

在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型XXX的对象时检测到循环引用。

在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型 的对象时检测到循环引用. 异常信息(部分): System.Web.Services.Protocols.SoapException: 服务器无法处理请求. ---> System.InvalidOperationException: 生成 XML 文档时出错. ---> System.InvalidOperationException: 序列化类型 Web

EF提示“序列化类型为XXX的对象时检测到循环引用”

能看到这个标题 ,我就用解释原因,网上很多,我只给大家一个解决方案会: public <#=code.Escape(entity)#> ToPOCO() { return new <#=code.Escape(entity)#>() { <# if (simpleProperties.Any()) { foreach (var edmProperty in simpleProperties) { #> <#=codeStringGenerator.Property

关于EF的 序列化类型为“XXX”的对象时检测到循环引用。

在用Ef的时候,也许经常会遇到循环引用的错误. 下面提供解决办法.(不是Json.Net,如果是Json.Net可以给导航属性通过增加特性标签来解决该问题) ef大多数问题,可以通过ToList()来解决.当这个问题解决不来的时候,你可以选择下面这种方法. IQueryable<TopicInfo> topicInfos = _topicInfoService.GetPagedEntitesQueryable(pageSize, pageIndex, wherelambda, t =>

mvc EF框架中,加载外键对象序列化对象时报错 序列化类型为XX的对象时检测到循环引用

Newtonsoft.Json.dll 或者通过->工具->库程序包管理工具->NuGet管理包->联机 输入Newtonsoft或者json.net Newtonsoft.Json是可以的: context.Response.ContentType = "text/plain"; BooksService service = new BooksService(); List<Books> list=service.GetAll().Take(5).

EF中Json序列化对象时检测到循环引用的解决办法

第一种方法:使用Newtonsoft.Json中的方法注释,在Json序列化的时候忽略导航属性 例:using Newtonsoft.Json; public class Users { public int Id { get; set; } public string LoginId { get; set; } public string LoginPwd { get; set; } [JsonIgnore] public virtual ICollection Roles { get; se

ef 对象无法序列化的问题(System.Data.Entity.DynamicProxies)

错误提示: System.InvalidOperationException: 生成 XML 文档时出错. ---> System.InvalidOperationException: 不应是类型 System.Data.Entity.DynamicProxies.FrDocMain_6A6FA4013EBB9F316ECF2126518C20341055E52EDEBA21C97E7E8430E7B15A70.使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型.