关于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. SQLite入门与分析(七)---浅谈SQLite的虚拟机

    写在前面:虚拟机技术在现在是一个非常热的技术,它的历史也很悠久.最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与 ...

  2. ANDROID_MARS学习笔记_S01原始版_010_ContentProvider

    一.简介 一.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <Linea ...

  3. Native Application 开发详解(直接在程序中调用 ntdll.dll 中的 Native API,有内存小、速度快、安全、API丰富等8大优点)

    文章目录:                   1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Ap ...

  4. 忘记commit的一次教训

    由于业务需求,已经上线的系统新增加了一些需求,其中一个需求是,从一个SQLSERVER数据库导入数据到生产的ORCLE数据库, 由于我的失误导致系统上线后 生产的Oracle数据没有导入成功,但是在本 ...

  5. AFNetworking 2.0 获取json数据时,返回 NSLocalizedDescription=Request failed: unacceptable content-type: text/html, 解决方法.

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSe ...

  6. VS2010中的调试技巧

    作者: scottgu 这是我的博客中关于VS 2010和.NET 4发布系列的第二十六篇文章. 今天的博文将介绍Visual Studio中的一些实用调试技巧.这是受我朋友Scott Cate (他 ...

  7. CLR C++ Set Word CustomDocumentProperties

    // WordIssue.cpp : main project file. #include "stdafx.h" using namespace System; using na ...

  8. lightoj 1011 (状态压缩dp)

    思路:状态压缩dp,设dp[i][j] 表示前i行,状态为j时的最大值,状态定义为:若前i行中取了第x列那么j的二进制位中第x位为1,否则为0,最后答案就是dp[n-1][(1 << n) ...

  9. HDU 1953

    #include<stdio.h> #include<math.h> long long int euler(long long int n) { long long int ...

  10. 浅谈PetShop之使用存储过程与PLSQL批量处理(附案例)

    1       大概思路 备注:黄色为影响参数 2       PetShop4的经典数据库连接代码回顾 PetShop4有3个函数,具体有: ExecuteReader:可以读一个表的记录,只能读不 ...