关于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() ;

关于EF中ApplyCurrentValues和ApplyOriginalValues区别的更多相关文章

  1. MVC EF中Attach和Entry区别

    EF:加入容器三种方式-->查询,attach,entry.不在容器里,不能用remove,add等方法. 1.0 使用Attach可能会出错.//attach 意思:附上; 贴上,系;var ...

  2. EF中逆变和协变

    EF中的增删改查: 实现步骤: 1.声明一个EF的上下文. bjhksjEntities dbContext = new bjhksjEntities(); 2.声明一个实体. HKSJ_USERS ...

  3. Linux下 ps -ef 和 ps aux 的区别及格式详解

    原文:https://www.cnblogs.com/5201351/p/4206461.html Linux下ps -ef和ps aux的区别及格式详解 Linux下显示系统进程的命令ps,最常用的 ...

  4. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  5. 数据库事务及其EF中如何处理事务

    一.基础知识 1)         使用事务级别ReadUnCommited 会产生脏读现像,意味着读取到的为UnCommited(未提交)的数据.怎么理解呢?在使用该隔离级别的事务开始后.更新了数据 ...

  6. top、ps -ef、ps aux的区别及内容详解

    1.top和ps的区别 ps是静态查看进程--------top是动态(持续监控)进程 ps只是查看进程-----------top还可以监视系统性能,如平均负载,cpu和内存的消耗 2.ps -ef ...

  7. 1.【使用EF Code-First方式和Fluent API来探讨EF中的关系】

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/relationship-in-entity-framework-using-code-firs ...

  8. 2.EF中 Code-First 方式的数据库迁移

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/code-first-migrations-with-entity-framework/ 系列目 ...

  9. EF中扩展出Between操作符 (修订版)

    随手记录一下,这是针对原文错误的修改. 原文:EF中扩展出Between操作符 直接使用是错误的,修改后的扩展方法: /// <summary> /// 扩展 Between 操作符 // ...

随机推荐

  1. 使用NSURLSession实现断点续传

    在sb中创建按钮,并且连线到.m文件中

  2. freshStartTail 第一次启动时 抛弃旧的日志

    freshStartTail [on/off] (requires v8.18.0+) Default: off This is used to tell rsyslog to seek to the ...

  3. bzoj3796

    好像已经很久没有做后缀数组的题目,导致这种题一开始没想出来看到公共子串肯定想到后缀数组吧,但我都忘了最长公共子串怎么求了重要的性质:最长公共子串=max(h[i])名次相邻的两个后缀要分别属于s1,s ...

  4. Ajax的同步和异步

    在实际编程过程中,涉及到很多同步和异步的问题,例如: $("#btnTJ").bind("click", function () { //第一条语句 $.pos ...

  5. [POJ 2019] Cornfields

    Cornfields Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5516   Accepted: 2714 Descri ...

  6. UITableView添加静态背景.

    1:  controller self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@" ...

  7. Epub2基础知识介绍

    一.什么是epub epub是一个完全开放和免费的电子书标准.它可以“自动重新编排”的内容. Epub文件后缀名:.epub 二. epub组成 Epub内部使用XHTML(或者DTBook)来展现文 ...

  8. WinForm触摸屏程序功能界面长时间不操作自动关闭回到主界面 z

    操作者经常会在执行了某操作后,没有返还主界面就结束了操作然后离开了,程序应该关闭功能窗体自动回到主界面方便下一位操作者操作.那么对于WinForm程序怎么实现呢? 实现原理:拦截Application ...

  9. POJ --- 3613 (K步最短路+矩阵快速幂+floyd)

    Cow Relays   Description For their physical fitness program, N (2 ≤ N ≤ 1,000,000) cows have decided ...

  10. 泰泽新闻:英特尔三星双否认泰泽Tizen系统已死

    7月8日 据媒体TizenExperts报道,关于“Tizen系统跳票”的传闻已经遭到了英特尔和三星否认. 此前传闻三星自行研制的智能手机Tizen操作系统流产,但如今已经遭到了官方的否认. 英特尔三 ...