你的位置:首页 > 软件开发 > ASP.net > EntityFramework 事务处理

EntityFramework 事务处理

发布时间:2016-04-12 22:10:57
默认情况下,当EF调用SaveChanges()时,会把生成的所有SQL命令“包”到一个“事务(transaction)”中,只要有一个数据更新操作失败,整个事务将回滚。在多数情况下,如果你总在数据更 ...

默认情况下,当EF调用SaveChanges()时,会把生成的所有SQL命令“包”到一个“事务(transaction)”中,只要有一个数据更新操作失败,整个事务将回滚。

在多数情况下,如果你总在数据更新操作代码中使用一个而不是多个DbContext对象,并且只是在最后调用一次SaveChanges(),那么EF的默认事务处理机制己经够用了,无需做额外的事情。

然而,如果出现以下的情形,你就必须显式地处理事务了。

第一种情况:你需要分阶段地保存数据,因而需要多次调用SaveChanges()或者执行修改数据库的SQL命令。

请看以下示例代码:

 

using (var context = new MyDbContext()){  try   {    Person3 p = context.People3.First();    p.Name ="newName" + (new Random().Next(1, 100));    context.SaveChanges();    context.Database.ExecuteSqlCommand("update Person3 setDescription={0} where Person3Id={1}",              "DescriptionModified at " + DateTime.Now.ToShortTimeString(),              p.Person3Id);    p.age *= 2;    context.SaveChanges();  }  catch (Exception e)  {    Console.WriteLine(e.Message);   }}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:EntityFramework 事务处理

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录