序列化类型为“System.Data.Entity.DynamicProxies..."对象时检测到循环引用
2024-09-05 20:27:20
这是因为EF外键引起的序列化问题。
解决方案:
context.Configuration.ProxyCreationEnabled = false;
这里我用的是一个基类控制器用于被继承 返回EF实例前加上这段代码就可以了
//用于被继承
public class BaseController : Controller
{
public CucuCarEntity db
{
get
{
//从当前线程中获取该对象
CucuCarEntity db = CallContext.GetData("DB") as CucuCarEntity;
//判断该对象是否为空
if (db == null)
{
//空的话就实例该对象
db = new CucuCarEntity();
//赋值
CallContext.SetData("DB", db);
}
//序列化类型为“System.Data.Entity.DynamicProxies.ActionInfo_”的对象时检测到循环引用。 加上这个就OK了
db.Configuration.ProxyCreationEnabled = false;
//返回
return db;
}
}
}
加粗标黄那句代码就可以解决这个Bug
我还发现这个循环引用,是EF在根据实体映射的时候,在构造方法中创建新的实例,实例之间循环引用了。可以把相应的实例注释掉,就可以使用EF的懒加载了。
最新文章
- workbench中safe update
- 调用JavaScript
- Sql Server 检测死锁的SQL语句
- laravel5学习手记
- Jersey搭建Restful服务器 on Ubuntu
- 浅谈AndroidManifest.xml与R.java及各个目录的作用
- 区分.net、c#、asp.net三者间的关系
- struts2标签自动错行、换行问题
- day3_python学习笔记_chapter5_数字
- BZOJ-1045-[HAOI2008] 糖果传递(中位数原理)
- canvas练手项目(一)——选取图片
- JAVA进阶7
- Linux printf命令详解
- React child
- linux每日命令(39):lsof命令
- 创建日志表记录DML操作和DDL操作
- Git clone 报错 Unable to negotiate with xxx.xxx.xxx.xxx port 12345: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc
- burpsuite拦截https数据包(Firefox)
- delphi2010 域名转换IP
- 【CF600E】 Lomsat gelral
热门文章
- 数据交换格式之 - XML
- mysql中not in子查询不能为空
- 华为云DevCloud一枝独秀
- 通过游戏学python 3.6 第一季 第七章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号
- #queue队列 #生产者消费者模型
- REM布局计算,移动端,pc端有兼容性)
- 给没有id主键的表添加id,并设置为not null 然后填充自增id
- Vue. 之 Element table 单元格内容隐藏
- git出现“The file will have its original line endings in your working directory”错误
- 高维护性的javascript