继续为想使用Entity Framework的朋友在前面探路,分享的东西虽然技术含量不高,但都是经过实践检验的。

在Entity Framework中使用事务很简单,将操作放在TransactionScope中,并通过Complete()方法提交事务即可。

示例代码如下:

using (BlogDbContext context =new BlogDbContext())
{
using (TransactionScope transaction =new TransactionScope())
{
context.BlogPosts.Add(blogPost);
context.SaveChanges();
postBody.ID = blogPost.ID;
context.EntryViewCounts.Add(
new EntryViewCount() { EntryID = blogPost.ID });
context.PostBodys.Add(postBody);
context.SaveChanges();
//提交事务
transaction.Complete();
}
}

经过测试验证,在transaction.Complete()之前的代码中只要出现异常,事务就会回滚。

【更新】

更好的解决方法见 Working with Transactions (EF6 Onwards)

在Entity Framework中使用事务相关推荐

  1. 如何处理Entity Framework中的DbUpdateConcurrencyException异常

    如何处理Entity Framework中的DbUpdateConcurrencyException异常 参考文章: (1)如何处理Entity Framework中的DbUpdateConcurre ...

  2. 在Entity Framework中使用存储过程(一):实现存储过程的自动映射

    之前给自己放了一个比较长的假期,在这期间基本上没怎么来园子逛.很多朋友的留言也没有一一回复,在这里先向大家道个歉.最近一段时间的工作任务是如何将ADO.NET Entity Framework 4.0 ...

  3. Entity Framework中的Migrations

    Migrations是Entity Framework中非常有意思的一个工具.Migrations 的目的是用来跟踪数据库的改变. 假如我们想回滚到一个月前的代码,非常容易,有版本管理工具.但是要回滚 ...

  4. 关于Entity Framework中的Attached报错相关解决方案的总结

    关于Entity Framework中的Attached报错的问题,我这里分为以下几种类型,每种类型我都给出相应的解决方案,希望能给大家带来一些的帮助,当然作为读者的您如果觉得有不同的意见或更好的方法 ...

  5. 了解Entity Framework中事务处理

    Entity Framework 6以前,框架本身并没有提供显式的事务处理方案,在EF6中提供了事务处理的API. 所有版本的EF,只要你调用SaveChanges方法进行插入.修改或删除,EF框架会 ...

  6. Entity Framework中的Migration问题

    1.自从用上了Entity Framework(简称EF),妈妈再也不用担心我要写那么复杂的SQL语句了! 这是微软新一代的ORM工具,它能够将数据库的表中的记录映射成为程序中的一个对象,当然也能够将 ...

  7. Entity Framework中IQueryable, IEnumerable, IList的区别

    使用工具追踪EF生成的SQL 使用Entity Framework等ORM框架的时候,SQL对于使用者来说是透明的,往往很多人也不关心ORM所生成的SQL,然而系统出现性能问题的时候就必须关注生成的S ...

  8. Entity Framework中IQueryable, IEnumerable, IList的区别(转自网络)

    使用工具追踪EF生成的SQL 使用Entity Framework等ORM框架的时候,SQL对于使用者来说是透明的,往往很多人也不关心ORM所生成的SQL,然而系统出现性能问题的时候就必须关注生成的S ...

  9. 如何在 Entity Framework 中计算 时间差 ?

    咨询区 ison 我的项目中有一个需求,需要使用 Entity Framework 实现 日期差 的计算逻辑,参考如下代码: var now = DateTime.UtcNow;db.Items.Or ...

最新文章

  1. (转)基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
  2. TensorBoard logging requires TensorBoard version 1.15 or above
  3. Codeforces Round #395 (Div. 2)(未完)
  4. Arduino--ESP8266物联网WIFI模块(贝壳物联)--数据上传服务器(单数据接口)
  5. 【转】ROWNUM与ORDER BY先后关系
  6. FEA-Net论文梳理
  7. 怎么查到运行的时间_“我的成考录取通知书怎么还没来,它是不是迷路了?”...
  8. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期下降3.29%
  9. 34 个免费学习编程的最佳网站
  10. 快手Android一面复盘
  11. PHP Include文件
  12. 服务器raid配置和安装系统,R390X G2服务器配板载RSTe阵列卡UEFI模式安装windows2008 R2系统典型配置...
  13. win10专业版和win10家庭版的区别浅谈
  14. 【C语言】BC62统计数据正负数个数(DAY 4)
  15. 计算机主机模型安装顺序,【新手必备】CAD2021最新电脑配置要求附安装步骤详解...
  16. ISO 4589-2 OI极限氧指数与UL94V0阻燃等级
  17. 000 我和网安的故事.doc
  18. 量化投资认知--听课笔记
  19. Unable to negotiate with 192.168.2.53 port 22: no matching host key type found. Their offer: ssh-rsa
  20. NRF24l01无线模块调试心得!STM32_SPI驱动NRF24L01+

热门文章

  1. Docker的安装与启动教程
  2. 有效管理云计算成本的多个措施
  3. logstash向elasticsearch写入数据,如何指定多个数据template
  4. 浅谈C++物理设计:实用宏
  5. jquery中的全局事件
  6. Hadoop JobTracker和NameNode运行时参数查看
  7. shell学习之突发奇想 ^_^ 打印9*9乘法表
  8. 【有返回值的回溯】剑指offer——面试题67——机器人的运动范围(回溯法)
  9. TCP握手协议的巧计方法
  10. centos 7 查看、更新系统版本