如何在业务逻辑层中实现事务

时间:2011-01-17 05:56:56

标签: asp.net database transactions transactionscope

我在我的asp.net应用程序中使用企业库数据访问块。我想在多个存储过程中实现业务逻辑层的事务。 Entlib打开一个新的数据库访问连接。  以下列方式使用事务范围是否会导致分布式事务?

using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
    // calling necessary DAL methods
   scope.Complete();
}  

有没有更好的方法来实现BLL的交易?

1 个答案:

答案 0 :(得分:0)

如果您将SQL Server称为后端,则取决于服务器版本。这是一篇好文章:DO.NET and System.Transactions

我引用:

  

TransactionScope足够聪明   不要创建一个完全分布式的   具有所有开销的事务   除非有必要。如果   交易中涉及的资源   很不稳定,一切都会留下来   内存和微软分发   交易协调员(DTC)不会   参与其中。如果资源是   连接到SQL Server 2005,DTC   将不会涉及和SQL Server   2005年将处理交易。这个   相当于打开一个内部   SQL事务。如果SQL Server 2000是   使用,它将解决使用完整   DTC交易。