第一个using中获取一些数据

User u;
using (var db = new Entities())
{u = db.Users.First();
}

在using外改变

u.NickName += "ABC";

在第二个using中把改变更新到库

using (var db = new Entities())
{
    ……
    db.SaveChanges();
}

在网上看了一些使用ApplyPropertyChanges()做的(此方法已过时,被标记为Browsable(false),可以使用新的ApplyCurrentValues),不过在apply之前,要先从库里把要改变的数据查出来(通过EntityKey查)这样会增加一次读库操作

保存的是这个刚查出来的,而不是之前上下文查出来的。

可以使用Attach附加,但是附加之后状态会变成Unchanged

这个时候需要手动改state,不能直接改,只有get没有set

db.ObjectStateManager.ChangeObjectState(obj, EntityState.Modified);
要通过state manager改。
改后save即可
用apply的方式
  1: using (var db = new Entities())
  2: {
  3:     Console.WriteLine("到第二个上下文中" + u.EntityState + "," + u.NickName);
  4:
  5:     var u2 = db.GetObjectByKey(u.EntityKey) as User;
  6:     Console.WriteLine("在第二个中查出" + u.EntityState + ",1:" + u.NickName);
  7:     Console.WriteLine("在第二个中查出" + u2.EntityState + ",2:" + u2.NickName);
  8:
  9:     db.Users.ApplyCurrentValues(u);
 10:     Console.WriteLine("在第二个中apply" + u.EntityState + ",1:" + u.NickName);
 11:     Console.WriteLine("在第二个中apply" + u2.EntityState + ",2:" + u2.NickName);
 12:
 13:     db.SaveChanges();
 14:     Console.WriteLine("保存后" + u.EntityState + ",1:" + u.NickName);
 15:     Console.WriteLine("保存后" + u2.EntityState + ",2:" + u2.NickName);
 16: }
 

用attach的方式
  1: using (var db = new THZlocalEntities())
  2: {
  3:     db.Attach(u);
  4:     Console.WriteLine("附加后" + u.EntityState + "," + u.NickName);
  5:
  6:     db.ObjectStateManager.ChangeObjectState(u, EntityState.Modified);
  7:     Console.WriteLine("改变状态" + u.EntityState + "," + u.NickName);
  8:
  9:     db.SaveChanges();
 10:
 11:     Console.WriteLine("保存" + u.EntityState + "," + u.NickName);
 12:
 13: }
 

转载于:https://www.cnblogs.com/czcz1024/archive/2011/09/30/2196246.html

在不同的ObjectContext中更新数据相关推荐

  1. es重建字段类型_关于elasticsearch中更新数据的几种方式

    作为一个成熟的框架,Elasticsearch里面提供了丰富的操作数据的api,本篇我们就来学习一下在es中更新数据的几种方式. (一)更新文档 (1)部分更新: java api: ` HashMa ...

  2. MySql 从查询结果中更新数据

    个通过外键关联的表 ,将一个表中的内容更新到另一个表中 UPDATE question_extracting_item AS a INNER JOIN (SELECTb.id,b.title_text ...

  3. 在mysql中更新数据sql语句怎么写_在MySQL中,更新数据库表记录的SQL语句,包括______语句...

    在MySQL中,更新数据库表记录的SQL语句,包括______语句 答:insert replace update delete 在域F中,设其特征为2,对于任意a,b∈F,则(a+b)2 等于多少 ...

  4. mysql update select 从查询结果中更新数据

    # update select 语句(注意:必须使用inner join) 语法 : UPDATE a INNER JOIN ( SELECT yy FROM b ) c ON a.id = c.id ...

  5. 在mysql中 更新数据中where_SQL中使用UPDATE更新数据时一定要记得WHERE子句

    Servlet访问第一次500,刷新后404的解决办法 第一次运行错误:HTTP Status 500 -  --------------------------------------------t ...

  6. 在DataTable中更新、删除数据

    在DataTable中选择记录 /*在DataTable中选择记录*//* 向DataTable中插入记录如上,更新和删除如下:* ----但是在更新和删除前,首先要找出要更新和删除的记录.* 一种方 ...

  7. Oracle中压缩数据节省空间和提高速度

    使用表压缩来节省空间并提高查询性能 很多决策支持系统通常都涉及到存储于几个特大表中的大量数据.随着这些系统的发展,对磁盘空间的需求也在快速增长.在当今的环境下,存储着数百TB(太字节)的数据仓库已经变 ...

  8. oracle更新数据没反应,ORACLE更新数据时如果有就更新没有就插入

    SQL写法: begin update table_name set salary = 10000 where emp_id = 5; if sql%notfound then insert into ...

  9. 小程序不刷新页面更新数据

    微信小程序不刷新页面更新数据 小程序刷新页面过程大家都懂得,特别是网络不好的时候,觉得这te,ma,就是一种折磨,如何做到不刷新页面就可以更新数据? 页面栈: 小程序的每一个页面都是一个page对象, ...

最新文章

  1. 如何评估深度学习模型效果?阿里工程师这么做
  2. Oracle本地管理对照数据字典管理表空间
  3. 离开时请告诉自己生意就是生意
  4. 程序员三年的门槛该如何跨过去?
  5. python 第三方模块之 pandas 操作 excel
  6. ./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No suc
  7. 使用 Storyboard Segue 实作 UIViewController 的切换 (实例)
  8. 未来无限可能 戴尔易安信开启中国新征程
  9. DemocracyOS促进双方的公民参与
  10. FISCO BCOS同步模块的优化策略
  11. 计算机机房需求调查表,机房建设需求调查表机房建设需求调查表.doc
  12. 高阶常微分方程的求解
  13. 2. Vue prevent修饰符
  14. python程序员面试算法宝典pdf-Python程序员面试笔试宝典
  15. 知识点 - 线性丢番图方程 Linear Diophantine Equations
  16. 多模态交互在,数智化营销服中的技术实践
  17. 直播带货“老三”,抖音背上「KPI」了
  18. 新的一年,如何打开超级APP发展格局
  19. Python自动化构建雷电模拟器
  20. excel导入非法字符处理,form表单等提交参数前后去除空白处理

热门文章

  1. 怎么解决input中readonly属性的iOS一直存在光标问题
  2. iPhone 软件:xlate free 编码的好帮手!
  3. CORS——跨域请求那些事儿
  4. 【错误解决】[Maven] cannot be opened because it does not exist错误[文件无法编译到target目录下的解决方法]...
  5. VS2013配置pro*C/C++开发环境
  6. 十天冲刺---Day8
  7. 百度地图移动端开发和ArcGIS for Android 开发入门
  8. jquery中的ajax方法(备忘)
  9. kafka 服务端消费者和生产者的配置
  10. iOS开发网络篇—网络编程基础