关于EF中ApplyCurrentValues和ApplyOriginalValues区别:两者都是编辑数据时使用。

//
        // 摘要:
        //     将 System.Data.Objects.ObjectStateEntry 的 System.Data.Objects.ObjectStateEntry.CurrentValues
        //     属性设置为与所提供对象的属性值相匹配。
        //
        // 参数:
        //   currentEntity:
        //     具有要应用于原始对象的属性更新的已分离对象。
        //
        // 返回结果:
        //     已更新的对象。

public TEntity ApplyCurrentValues(TEntity currentEntity);

参数currentEntity的取值方式有两种

(1)从内存中查出来的对象,编辑你需要编辑的字段,然后传入。

var user = db.Users.Where(m => m.ID== ID).FirstOrDefault();

user.Age = 10;

user.Sex="M";

db.CreateObjectSet<Users>().ApplyCurrentValues(user);
db.SaveChanges() ;

(2)用new 关键字创建的新对象,此处注意,创建的对象必需满足数据表约束,然后传入。

db.CreateObjectSet<Users>().ApplyCurrentValues(new Users(){

ID = ID/*注意:此处的ID必需是数据库中存在的*/,

Age=10,

Sex="M"

});

db.SaveChanges() ;

   

//
        // 摘要:
        //     将 System.Data.Objects.ObjectStateEntry 的 System.Data.Objects.ObjectStateEntry.OriginalValues
        //     属性设置为与所提供对象的属性值相匹配。
        //
        // 参数:
        //   originalEntity:
        //     具有要应用于原始对象的属性更新的已分离对象。
        //
        // 返回结果:
        //     已更新的对象。

public TEntity ApplyOriginalValues(TEntity originalEntity);

参数originalEntity的取值方式只有一种

(1)从内存中查出来的对象,编辑你需要编辑的字段,然后传入。

var user = db.Users.Where(m => m.ID== ID).FirstOrDefault();

user.Age = 10;

user.Sex="M";

db.CreateObjectSet<Users>().ApplyCurrentValues(user);
db.SaveChanges() ;

转载于:https://www.cnblogs.com/yanglongv/p/3913158.html

关于EF中ApplyCurrentValues和ApplyOriginalValues区别相关推荐

  1. JS中同步和异步的区别

    JS中同步和异步的区别 js是一门单线程语言,所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推.如果一个任务耗 ...

  2. mybatis与php,浅谈mybatis中的#和$的区别

    浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...

  3. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  4. JAVA 中equals()与==的区别

    原文地址:http://www.chineselinuxuniversity.net/articles/29594.shtml 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存 ...

  5. python时间函数报错_python3中datetime库,time库以及pandas中的时间函数区别与详解...

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...

  6. java中Array和ArrayList区别 可以将 ArrayList想象成一种会自动扩增容量的Array

    java中Array和ArrayList区别 1)精辟阐述: 可以将 ArrayList想象成一种"会自动扩增容量的Array https://blog.csdn.net/ywjy10280 ...

  7. SQL点滴31—SQL语句中@@IDENTITY和@@ROWCOUNT区别

    原文:SQL点滴31-SQL语句中@@IDENTITY和@@ROWCOUNT区别 SQL语句中@@IDENTITY和@@ROWCOUNT区别 在一条 INSERT.SELECT INTO 或大容量复制 ...

  8. android r类 作用,Android 主项目和 Module 中 R 类的区别

    Android 主项目和 Module 中 R 类的区别 我们知道 Android 项目中会通过自动生成一个 R.java 类的方式来保存项目中所有资源文件的标识在主项目中生成的 R.java 中的资 ...

  9. 【mybatis】mybatis中 的# 和 $的区别

    mybatis中 的# 和 $的区别 参考地址:https://www.cnblogs.com/sxdcgaq8080/p/10869144.html 转载于:https://www.cnblogs. ...

最新文章

  1. C# 正则表达式过滤危险HTML
  2. python实现肯德基店铺查询
  3. 郑州升达经贸管理学院计算机专业学费,郑州升达经贸管理学院学费
  4. docker无法连接mysql镜像_关于Docker官方CentOS镜像无法启动mysqld的总结
  5. Java 8 八年不倒、IntelliJ IDEA 力压 Eclipse,2022 年 Java 开发者都在用什么?
  6. 3.1 RNN 循环神经网络 概述(下篇)
  7. 2016 Multi-University Training Contest 2
  8. 小米与乐视的竞争分析
  9. STM32F429与CC2530 ZigBee模块通信
  10. 用户增长——AARRR模型
  11. 小程序页面简单功能模块化之取整
  12. 不可不知的量化因子模型选股策略
  13. 云影数码工作室-创业计划书
  14. 【清华集训2014】【BZOJ3812】主旋律
  15. 10G光模块系列:10G 80公里(KM)光模块有哪些-易飞扬
  16. Ubuntu 16.10 禁用 Guest 访客模式
  17. 技术|Android安装包极限优化
  18. asp毕业设计——基于asp+sqlserver的工厂设备管理系统设计与实现(毕业论文+程序源码)——工厂设备管理系统
  19. 使用向日葵、TeamViewer、todesk 等远程访问软件,腾讯桌面整理、安卓模拟器或模拟器内软件打不开、浏览器某页面、视频播放器,我们可能会遇到白屏、黑屏、无法点击等问题。
  20. 职场人生:一个7年老员工的离职总结:如何打造一个最强大的“自我”

热门文章

  1. linux lab命令,Linux lab 命令
  2. ajax异步提交 java_jquery ajax异步提交表单数据的方法
  3. linux子系统使用rstudio,linux 下安装Rstudio
  4. mysql plsql 循环_PL/SQL for...loop循环语句
  5. 1命名规则 sentinel_Spring Cloud Alibaba 整合 Sentinel 流控
  6. 用计算机计算成品率计算公式,计算机专业英语+单词+部分习题.doc
  7. 镜像处理坐标 android,Android应用开发之Android重写ImageView实现图片镜像效果的代码教程...
  8. Paper1:HoPE: Horizontal Plane Extractor for Cluttered
  9. LabVIEW设计自定义滚动条
  10. autoware中lgsvl Simulator安装与使用:LGsvl Simulator 2021.2.1版(九)