gpt4 book ai didi

c# - 不同 BeginTransaction 方法之间的区别。

转载 作者:行者123 更新时间:2023-12-05 08:44:34 28 4
gpt4 key购买 nike

以下 BeginTransaction 方法有什么区别:

  1. SqlConnection.BeginTransaction 方法

  2. DbConnection.BeginTransaction 方法

  3. DbConnection.BeginDbTransaction 方法

此外,它们与 System.Transaction 中的 TransactionScope() 方法有何不同?

最佳答案

  1. SqlConnection.BeginTransaction 创建一个 SqlTransaction,它特定于 MS SQL Server
  2. DbConnection.BeginTransaction 创建一个 DbTransaction,它是通用的,并依赖于底层连接来创建特定于数据库的事务。如果您的 DbConnectionSqlConnection 类型,这将是一个 SqlTransaction
  3. DbConnection.BeginDbTransaction 是一种 protected 方法,如果您要创建自己的继承自 DbConnection 的类,则可以覆盖该方法。

编辑:

这些都是特定于创建它们的数据库连接,它的使用方式不同于不依赖于数据库的 TransactionScope。我相信如果您想协调多个连接之间的事务,您必须显式调用 DbConnection.EnlistTransaction(transaction)。使用 TransactionScope,连接将(取决于数据库提供者,至少它应该)自动登记在 TransactionScope 中(如果连接打开时存在)。在 WCF 中,TransactionScope 也可以跨服务边界传递,并可用于将多个服务调用的结果作为单个事务提交。

关于c# - 不同 BeginTransaction 方法之间的区别。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6860096/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com