C#提高知识 ADO.NET实体数据模型(3)-关于回滚
ADO.NET 实体数据模型,其实我是不太喜欢用这个,主要是遇到复杂查询时linq语句写起来比较多,当然也是可以直接执行sql语句的,但是执行复杂sql时还是执行不了,因为连接有问题。
但是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(); }