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

发布于 2024-10-12 05:26:08 字数 322 浏览 4 评论 0原文

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

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

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

I'am using enterprise library data access block in my asp.net application. I want to implement transaction from the Business logic layer, across multiple stored procs. Entlib opens a new connection for database access.
Does using Transaction Scope in the following way lead to distributed transaction?

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

Is there better methods to implement transaction from BLL?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝颜夕 2024-10-19 05:26:08

如果您谈论的是 SQL Server 作为后端,这取决于服务器版本。这是一篇好文章:DO.NET 和 System.Transactions

我引用:

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

If you're talking about SQL Server as the backend, it depends on the server version. Here is a good article: DO.NET and System.Transactions

I quote:

The TransactionScope is smart enough
not to create a fully distributed
transaction with all of its overhead
unless it is necessary. If the
resource involved in the transaction
is volatile, everything will stay in
memory and the Microsoft distributed
transaction coordinator (DTC) will not
be involved. If the resource is a
connection to SQL Server 2005, the DTC
will not be involved, and SQL Server
2005 will handle the transaction. This
is equivalent to opening an internal
SQL transaction. If SQL Server 2000 is
used, it will resolve to using a full
DTC transaction.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文