EF实体中的数据修改更新
说到现在才进入正题,那我们怎么来进行修改呢?
不推荐方式一:
思路:先从ObjectContext取出实体,然后将前台传过来的DTO属性对应赋值到我们的实体上,然后调用ObjectContext的保证修改方法。
但是这种方式是最不提倡的,因为这样每次修改前都得先将数据查出来,经过SqlProfiler追踪,这么一个操作要对数据库进行两次的连接。这是不可忍受的!
推荐方式二:
思路:无需先查出实体,因为我们知道EF通过 ObjectStateManage来控制添加、修改、删除队列以及实体的状态,我们所有可以通过在直接将DTO转化成实体,然后将实体对应的队列中,并 且我们手动的将实体的状态处理好,再调用ObjectContext的保证修改方法,这样就避免了先查询后修改,两次数据库连接的问题了。实例代码如下:
static void Main(string[] args)
{SchoolDBEntities schoolDB = new SchoolDBEntities();//假设:网络传一个StudentDTO过来 ,将此DTO转化成 数据库实体Student student = new Student();student.Id = 1;// 假设DTO传过来的值,主键必须存在,不然会报错的student.Address = "北京上地1";student.Name = "飞龙1"; student.Phone = "1101";//先将实体附加到实体上下文中schoolDB.Student.Attach(student);//手动修改实体的状态schoolDB.ObjectStateManager.ChangeObjectState(student, EntityState.Modified);//保存回数据库schoolDB.SaveChanges();
}
EF实体中的数据修改更新相关推荐
- 离线状态下如何在Execl中实现数据修改后的高亮显示?
Execl中实现数据修改后的高亮显示 1 问题描述 2 解决思路 2.1 保存操作记录 2.2 手动保存原记录后进行匹配 3 解决方法 3.1跟踪更改 3.2 条件格式 3.3 重复项匹配 3.4 设 ...
- eclipse给mysql修改表数据_Eclipse中java向数据库中添加数据,更新数据,删除数据...
ASP.NET网页动态添加.更新或删除数据行 看过此篇 http://www.cnblogs.com/insus/p/3247935.html的网友,也许明白Insus.NET是怎样实现动态添加数据行 ...
- mysql在计算机管理中的路径怎么修改_称重软件中的数据修改怎么知晓?
称重软件 称重软件应客户需求,数据允许修改,但不允许删除只能作废.如果数据已修改,该如何知晓该数据是修改过的呢,这就用到了标记.用户修改数据时为保证数据的可追溯性,同样在数据安全方面也有相应的要求,要 ...
- 修改游戏服务器中的数据,修改游戏服务器中的数据库
修改游戏服务器中的数据库 内容精选 换一换 业界对备份一致性的定义包括如下三类:不一致备份:备份的文件.磁盘不在同一个时间点.云备份中的云服务器备份提供对弹性云服务器和裸金属服务器的基于多云硬盘一致性 ...
- java将数组中的数据修改,深度集成!
京东Java研发岗一面(基础面,约1小时) 自我介绍,主要讲讲做了什么和擅长什么 springmvc和spring-boot区别 @Autowired的实现原理 Bean的默认作用范围是什么?其他的作 ...
- matlab 表格的颜色设置,如何根据表格中的数据修改合适的单元格颜色(在Matlab中)?...
如果您阅读讨论 carefully,您会发现 UITABLE支持HTML内容-- 这是一个例子: X = rand(100,2); %# convert matrix of numbers to ce ...
- EF Core中高效批量删除、更新数据的Zack.EFCore.Batch发布三个新特性
Zack.EFCore.Batch是一个支持在Entity Framework Core中高效删除和更新数据的开源库.我们知道,EF Core中不支持高效的删除和更新数据,所有的更新和操作都是逐条数据 ...
- MySQL - 更新表中的数据记录
更新表中的数据记录 更新数据记录是数据操作中常见的操作,可以更新表中已经存在数据记录中的值.在MySQL中可以通过UPDATE语句来实现更新数据记录,该SQL语句可以通过如下几种方式使用:更新特定数据 ...
- 利用Ajax实现数据的同步传输,从mysql中提取数据,通过echarts可视化
如何将mysql数据库中的方式通过echarts可视化呢,以下面这个简单的例子向大家进行演示: 步骤一:mysql的创表和插入数据,当然这些数据也可以是你通过爬虫抓取的. 步骤二: 创 ...
最新文章
- IE6左右边框断线现象
- 限制php-cgi进程数量,php-fcgi进程数超过预设值问题的解决
- Windows Phone 7(WP7)开发 自订磁贴(深度链接)
- ASP.NET Core 3.0 使用gRPC
- python 面向对象编程简称_Python基础-面向对象编程
- 认识死锁之死锁的基本概念
- Java如何将指定字符串转化为指定日期格式
- iOS学习笔记11 多线程入门
- java 同步和异步_知道什么叫同步和异步吗?
- axure通用元件库 Pc、Web端原型图组件库高保真UI rp源文件
- 人工智能机器学习模型构建数据集猫狗数据集(cats_and_dogs_filtered.zip)数据集百度网盘下载地址
- vue如何集成阿里云视频服务组件(aliplayer)视频功能是使用el-dialog 弹出aliplayer播放
- 基于SVPWM的无刷直流电机矢量控制系统研究
- 中国消费品领域知名的调查研究咨询公司信息
- Java桌面应用程序设计新贵:SWT简介
- H264中4x4、8x8和16x16尺寸对应场景
- Vue自定义组件--输入框的双向绑定--自动切换输入法的录入框
- 【错误记录】Android 应用安全检测漏洞修复 ( StrandHogg 漏洞 | 设置 Activity 组件 android:taskAffinity=““ )
- 卖动感单车能帮助keep走出变现困境吗?
- The Unarchiver 4.1.0版本在苹果电脑系统10.15.6上解压xcode.xip有问题
热门文章
- Frida踩坑 can‘t decode byte 0xc0 in position 86 , can‘t decode byte 0xc0 in position 86
- 李开复解读:未来人工智能的巨大商机
- Session鉴权【登录】
- 病毒先生:还在砸钱做IP?真正的IP营销应该这么玩!
- GitHub第三方登录
- python交互界面清屏_IDLE如何清屏?
- koa 基础入门与源码学习
- 深度学习实战-从源码解密AlphGo Zero背后基本原理
- 继房价上涨的房租上涨
- tag数组-刷题预备知识-4.一通百通解决二分查找问题