实习笔记-3:ef实体操作错误篇
学习笔记
1.json序列化ef实体是报错:“序列化类型为“System.Data.Entity.DynamicProxies.XXXX.... 对象时检测到循环引用。”
公司里用ef来生成实体。但是当我需要当ef构建完的实体里有其他实体的时候,比如说:在picture里有a实体。
假设一种情形:获取一个PagedList<Picture>然后在后台用json返回时,会报错:
“序列化类型为“System.Data.Entity.DynamicProxies.XXXX.... 对象时检测到循环引用。”
之所以出现这个的原因:因为这个表和另一个表是有一对多关系的,当序列化表1的时候,会找到和表2关联的字段,就会到表2中序列化,而表2中也有一个字段和表1相关联.这样.序列化就会发生这种错误!
解决方法:重新new一个对象就可以了。
2.无法删除此对象,因为未在 ObjectStateManager 中找到它。
因为之前都是在别人项目上进行维护和新增需求,对ef的一些具体的细节方面了解不到位。结果就导致了我在删除ef实体的时候出现了如上错误。
出现的情景:我通过执行sql获取到了一个model,然后执行了ef.DeleteObject(model)。报错:无法删除此对象,因为未在 ObjectStateManager 中找到它。
原因:执行ef的删除操作时,model必须是ef里的对象,不能自己New一个对象(XXX model = new XXX{ NAME=“123” }),否则会报错:无法删除此对象,因为未在 ObjectStateManager 中找到它。
知道问题所在,就可以解决了:用ef获取实体的方法获取该实体然后就可以了。
实习笔记-3:ef实体操作错误篇的更多相关文章
- 实体之间的关系【Entity Relationships】(EF基础系列篇9)
Here, you will learn how entity framework manages the relationships between entities. Entity framewo ...
- EF实体框架之CodeFirst一
对于SQL Server.MySql.Oracle等这些传统的数据库,基本都是关系型数据库,都是体现实体与实体之间的联系,在以前开发时,可能先根据需求设计数据库,然后在写Model和业务逻辑,对于Mo ...
- EF实体框架之CodeFirst四
在EF实体框架之CodeFirst二中也提到数据库里面一般包括表.列.约束.主外键.级联操作.实体关系(E-R图).存储过程.视图.锁.事务.数据库结构更新等.前面几篇博客把表.存储过程.视图这些算是 ...
- 第八节: EF的性能篇(一) 之 EF自有方法的性能测试
一. 开发中常见的性能问题 我们在日常开发过程中,由于一些不好的习惯,经常会导致所写的代码性能低下,却毫无发觉,下面就总结一下常见的一些性能问题. 1. 真假分页 ① 假分页: db.xxx.toLi ...
- Linux及Arm-Linux程序开发笔记(零基础入门篇)
Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/bee ...
- 笔记:EF出现列名 'Discriminator' 无效、类没有加入数据库上下文也被数据迁移生成表
笔记: EF出现列名 'Discriminator' 无效: 类没有加入数据库上下文也被数据迁移生成表: 出现该问题一般是使用了某个基类继承了实体类: 原因是code first的POCO实体对象的继 ...
- 【Linux开发】Linux及Arm-Linux程序开发笔记(零基础入门篇)
Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer ...
- jQuery学习笔记 - 基础知识扫盲入门篇
jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...
- EF 实体+ Newtonsoft.Json 输出JSON 时动态忽略属性的解决方法
最近的项目采用的是 ASP.NET mvc 4.0 + entity framework 5.0 ,后台以JSON形式抛出数据是借助于Newtonsoft.Json , 要想忽略的属性前面添加特性 ...
随机推荐
- 搭建maven+spring+mybatis工程
一.maven 命令搭建web项目 可以参考我之前的一篇博文maven快速入门 1.搭建web工程 mvn archetype:generate -DgroupId=com.yuanmeng.spri ...
- mac下烦人的eclipse安装svn插件
eclipse作为一个鸡肋般的java ide,颇有食之无味弃之可惜之感.最近公司统一对电脑做了一些处理,搞的我的eclipse都不能用了.重新安装了一下,各种maven.svn,代码格式什么的依赖神 ...
- Andorid4.x 流氓式屏蔽HOME键
转载请列明出处 http://blog.csdn.net/steelychen/article/details/37757341 应用项目须要要屏蔽HOME键. 项目本身的要求是让按下HOME键后程序 ...
- python的内存管理机制 图解+Django Web开发学习笔记
http://www.cnblogs.com/CBDoctor/p/3781078.html http://www.cnblogs.com/vamei/p/3232088.html http://bl ...
- 解决content is not allowed in prolog问题
将xml文档用notepad++以UTF-8无BOM格式编码保存便可以了
- 五、Socket之UDP异步传输文件-实现传输中取消传送
上一篇文章四.Socket之UDP异步传输文件中,只实现了传输开始前拒绝接收文件,没有实现文件传输进行的时候取消传送,这篇文章中我们就来介绍怎样实现这个功能. 在传输过程中取消文件的传送,有很多地方要 ...
- web service 部署
写的不好,全当是写给自己看的吧. 公司用飞天诚信的加密狗对网站进行加密,我要部署加密狗的web service.注:web service 由加密狗公司提供. 1.新建网站dog
- bootstrap在iis中发布后无法看到图标,字体样式
因为框架使用了字体文件来显示矢量的图标,为了能在IIS上正常显示图标,可以通过增加iis的MIME-TYPE来支持图标字体文件:
- StringBuilder 用法和div获取
StringBuilder strHtml = new StringBuilder(); strHtml.Append("<tr>"); strHtml.Append( ...
- 面试学到的css布局,细节影响了我的面试成绩
这几天的面试很纠结,也让我注意到我的前端知识确实不行,从两个小细节总结: 1:body体的居中样式. 这个在IE和非IE Firefox Chrome Opera下面的差别 IE下text-align ...