C#提高知识 ADO.NET实体数据模型(3)-关于回滚
来源:互联网 发布:2016年来华留学生数据 编辑:程序博客网 时间:2024/04/29 14:00
ADO.NET 实体数据模型,其实我是不太喜欢用这个,主要是遇到复杂查询时linq语句写起来比较多,当然也是可以直接执行sql语句的,但是执行复杂sql时还是执行不了,因为连接有问题。
但是ADO.NET实体有个优点就是,能实时更新数据库的变化,并且自动更新模型,基于这一点也是我在使用纯sql语句的时候,还是坚持使用了不少实体数据模型的。
这几天打算用实体模型写一个多表顺序修改的的数据库操作的功能,也就是上一个表或记录修改成功才能进行下一个表或记录的修改。这里就涉及到回滚的问题了。
我原本以为提供的有回滚的机制,不过没找到,不知道是不是我的资料不全。
我觉得可以用如下方法解决。
1、如果是同一个Entities下,最好将每个表的记录依次修改,然后最后只运行一个SaveChanges(),来达到同时提交的目的。
例,表名为虚构,
2、可以将旧的记录在一个新的实例中保存起来。但是不是引用赋值,而是将旧的记录的字段和属性,一次赋值给新的实例。然后保存修改,如果出错后,将新的实例的值再赋值给当前要修改的记录,再次保存。
也就是如下关系:
记录1副本=记录1;
bool r= 保存记录1;
if(r)
{
bool r2 = 保存记录2;
if(!r2)
{
将记录一的副本重新保存,覆盖掉记录1的修改。
}
}
目前来说,我会使用这两种方式解决回滚问题。欢迎大家交流。
但是ADO.NET实体有个优点就是,能实时更新数据库的变化,并且自动更新模型,基于这一点也是我在使用纯sql语句的时候,还是坚持使用了不少实体数据模型的。
这几天打算用实体模型写一个多表顺序修改的的数据库操作的功能,也就是上一个表或记录修改成功才能进行下一个表或记录的修改。这里就涉及到回滚的问题了。
我原本以为提供的有回滚的机制,不过没找到,不知道是不是我的资料不全。
我觉得可以用如下方法解决。
1、如果是同一个Entities下,最好将每个表的记录依次修改,然后最后只运行一个SaveChanges(),来达到同时提交的目的。
例,表名为虚构,
using (MyEntities aentity = new MyEntities()) { TAB_MEMBER tab1 = aentity.TAB_MEMBER.Where(o => o.ID == "123").FirstOrDefault(); tab1.TBM_ID = "234"; TAB_EMPLOYEE tab2 = aentity.TAB_EMPLOYEE.Where(o => o.ID == "id1").FirstOrDefault(); tab2.TBA_ID = "id2"; aentity.SaveChanges(); }
2、可以将旧的记录在一个新的实例中保存起来。但是不是引用赋值,而是将旧的记录的字段和属性,一次赋值给新的实例。然后保存修改,如果出错后,将新的实例的值再赋值给当前要修改的记录,再次保存。
也就是如下关系:
记录1副本=记录1;
bool r= 保存记录1;
if(r)
{
bool r2 = 保存记录2;
if(!r2)
{
将记录一的副本重新保存,覆盖掉记录1的修改。
}
}
目前来说,我会使用这两种方式解决回滚问题。欢迎大家交流。
- C#提高知识 ADO.NET实体数据模型(3)-关于回滚
- C#提高知识 ADO.NET实体数据模型(1)
- C#提高知识 ADO.NET实体数据模型 (2)
- C#提高知识 ADO.NET实体数据模型 (2)
- VS无ADO.NET实体数据模型?
- 解决VS2012中没有ado.net实体数据模型(ADO.NET entity data model)的问题
- 使用ADO.net 实体数据模型遇到的问题
- ADO.NET实体数据模型 在模型中加入外键列【Linq】
- 大家好ado.net 实体数据模型 怎么支持其他数据库?
- VS2010 安装后找不到ADO.NET 实体数据模型
- VS2010 安装后找不到ADO.NET 实体数据模型
- 用Ado.Net实体数据模型 向sql数据库添加数据
- ADO.NET实体数据模型与Dataset数据集
- VS2013下使用创建sqlite的ADO.NET实体数据模型
- 解决VS中没有ADO.NET实体数据模型
- ADO.NET数据模型
- ADO.NET DataSet 数据模型
- JQuery Pagination AJax 分页实例 For ASP.NET(JQuery+ashx+ADO.NET 实体数据模型)
- 完全背包问题(贪婪法)
- 事务的嵌套
- NYOJ-47 过河问题(贪心)
- Qt GUI 总结
- 浮点数与0比较.
- C#提高知识 ADO.NET实体数据模型(3)-关于回滚
- openfiler
- 丢失所以控制文件,数据库文件,redo文件进行数据库恢复
- 相关数值分析多种算法代码
- CALayer简单教程
- 学习杂记
- 很好的一个面试总结
- PHP实现今天是星期几的几种写法
- OCP-1Z0-052-V8.02-183题