C# EF6 更新对象
2019独角兽企业重金招聘Python工程师标准>>>
该文件主要是在记录C#过程中级联更新问题。该问题主要是在对数据库中的对象中的关联进行更新,导致出现了极大的性能问题,希望有这方面的专家能给出建设性的意见和方向。
class Student
{int id;string name;ICollection<Course> Courses;}class Course{int id;int studentId;}
如果我需要更新 Student 类的courses 列表时, 首先清除或者移除列表中的数据,然后添加并更新。
stu.ClassName.Clear();
结果出现异常错误
其实就是不能通过此种方法删除一对多的关系。于是就老实的 通过 context 去删除。
context.Courses.RemoveRange(stu.Courses);
通过此种方法确实达到了目的,删除了数据,但是测试,发现1000 多条的数据,竟然发现耗费了大量的时间。我的情况比较复杂,原来只用了 5 mins, 结果这么已处理时间达到了40 mins以上。我直接无语。。。(个人认为耗时主要集中在更新对象上),所以我只能另寻他法:多遍历一次,然后通过SQL处理删除,然后重新加载改EF Model.
context.Database.ExecuteSqlCommand("delete from course where studentid="+id);(注意通过Sql操作并不会更新模型,当执行Model 和 SQL 混合使用时,将导致模型保存时出现错误。
通过上面确实能够解决了效率问题,但是已经失去了OOP思想,我觉得只是一种临时的方案。 希望有人能够提出一种能加合理的方案。
转载于:https://my.oschina.net/RainyZou/blog/600812
C# EF6 更新对象相关推荐
- JavaScript 更新对象属性
当你创建了一个对象后,你可以用点操作符或中括号操作符来更新对象的属性. 举个例子,让我们看看 ourDog: var ourDog = { "name": "Camper ...
- 自定义变量 配置文件_跟我一起学.NetCore之自定义配置源热更新对象绑定
前言 上一篇针对不同的配置源进行举例演示,感受到不同配置源和不同数据格式使用统一操作的便捷(即没有什么加一层解决不了的,这个不是我说的),这里接着说说自定义配置源.配置热更新.配置绑定对象相关操作: ...
- java 更新对象_java通过key-list和对应value更新当前对象
//递归更新一个json对象,原对象若没有则插入key,精妙! @SuppressWarnings("unchecked") Object setObjectRecursive(O ...
- 跟我一起学.NetCore之自定义配置源-热更新-对象绑定
前言 上一篇针对不同的配置源进行举例演示,感受到不同配置源和不同数据格式使用统一操作的便捷(即没有什么加一层解决不了的,这个不是我说的),这里接着说说自定义配置源.配置热更新.配置绑定对象相关操作: ...
- 七牛云更新对象存储空间突然上传不了图片,状态码631
七牛云的对象存储域名过期了,于是重新申请和创建了两个空间,一个用来存储头像图片,另一个用来存储分享长图,在项目配置文件中把旧的域名替换成新的域名 访问项目,测试更换头像功能,发现一直没有更新头像成功, ...
- vuex中更新对象或数组的值页面不更新的问题
(vue3没有此问题)在Vuex中,如果store中数据是数组或者是对象,操作之后,vuex 数值已经改变了,但页面展示的对应数值却没有改变. 类似的情况,大部分出现在这几个场景 state: {ob ...
- C#更新对象值//删除时异常 Object reference not set to an instance of an object.
更新实体时,查询结果后用qcmbatch.BatchId 的形式更改要更新的属性值(而不是new新实体[qcmbatch = new QcmBatch() ]x) if (InTag.final_de ...
- MVC5+EF6 入门完整教程四
MVC5+EF6 入门完整教程四 原文:MVC5+EF6 入门完整教程四 上篇文章主要讲了如何配置EF, 我们回顾下主要过程: 创建Data Model à 创建Database Context à创 ...
- 深入探索.NET内部了解CLR如何创建运行时对象
前言 SystemDomain, SharedDomain, and DefaultDomain. 对象布局和内存细节. 方法表布局. 方法分派(Method dispatching). 因为公共语言 ...
- 乐变黄杲:当前如何选择App热更新服务
在2017年6月这个时间点,我们有必要谈谈热更新这个技术到底何去何从. \\ 上半年苹果的两次警告,通知iOS开发者在6月12日前移除热更新相关代码,否则将会下架相关App,一时间风声鹤唳,那么App ...
最新文章
- 华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020...
- 软件工程师的发明家—从发明家的视角分析软件
- my rank in math in the domain of pure mathematics
- .NET(C#):浅谈程序集清单资源和RESX资源
- 自建邮件服务器更给力?
- python实现离线翻译_10分钟教你用Python实现微信翻译机器人
- (十八)深入浅出TCPIP之HTTP和HTTPS
- 程序员在想些什么?拒绝盲猜,CSDN帮你精准洞察 Ta 们的心
- linux下模糊搜索命令,linux命令当前文件夹下面模糊搜索文件
- 2019年7月第一周总结-RabbitMQ总结
- 用sed和awk实现将文本中的上下两行合并为一行(转载)
- 软件工程学习进度表06
- java学习之Eclipse开发工具
- 利用tensorFlow api 识别手术器械
- C语言实现sin函数的程序设计
- [转贴] 刷机利器 Rom Manager 的简单用法
- xss漏洞java代码_Java处理XSS漏洞的工具类代码
- YOLO算法发展史 v1 v2 v3
- JAVA获取硬盘序列号
- python加密狗的制作_制作u盘加密狗图文教程
热门文章
- python:sklearn 标签编码(LabelEncoder)
- 2017年第八届 蓝桥杯 java B组
- dz论坛自定义html,关于diy模块中的自定义html
- c语言中Oo是什么进制整数字,C语言中的大小端存储及原码补码反码的运算关系 %d %u...
- matlab三维矩阵的运算符,【求助】多维矩阵求和运算!!
- java redis设置过期时间_Redis的内存回收原理,及内存过期淘汰策略详解
- mysql 最后行加汇总_[mysql系列]6.幻读和间隙锁
- C/C++ 各种进制的表示方法/ 进制前缀
- 实验四------实验十二
- 英特尔第四代酷睿处理器数字和字母代表什么意思