【问题标题】:Entity framework and transcations实体框架和事务
【发布时间】:2012-05-16 07:22:17
【问题描述】:

我们计划在 asp.net 网络表单中开发一个新应用程序。我们正在使用实体框架(使用 POCO 类方法)。

我们有表示层、业务逻辑层和数据访问层。我的问题是,如果在一个页面上我们想做一些交易工作,意味着向客户添加一些数据,添加一些与客户无关的其他数据,发送电子邮件等,那么我们如何在单次交易中完成。

我们应该在网页后面的代码上开始交易吗?或者将这些所有数据传递给 BLL 中的某个客户方法,它会以事务方式完成所有这些操作?在这两种方式中,代码都不会松散耦合。

当有不同的实体参与操作时,任何人都可以告诉我进行交易工作的最佳做​​法吗?

【问题讨论】:

    标签: entity-framework-4 transactions


    【解决方案1】:

    说明

    SaveChanges 在内部使用事务,但如果你想执行多个SaveChanges 调用,你需要TransactionScope。如果scope.Complete() 未被调用(发生异常),则事务将回滚。

    示例

    using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
    {
         // add something to your context
         myDbContext.Add(...);
         // save changes
         myDbContext.SaveChanges();
         // commit changes 
         scope.Complete(); 
    }
    

    更多信息

    【讨论】:

      猜你喜欢
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      相关资源
      最近更新 更多