C# 不同的启动方式之间的差异。
以下BeginTransaction方法之间有什么区别:C# 不同的启动方式之间的差异。,c#,entity-framework,ado.net,transactions,C#,Entity Framework,Ado.net,Transactions,以下BeginTransaction方法之间有什么区别: SqlConnection.BeginTransaction方法 DbConnection.BeginTransaction方法 DbConnection.BeginDbTransaction方法 此外,它们与System.Transaction中的TransactionScope()方法有何不同 SqlConnection.BeginTransaction创建一个特定于MS SQL Server的SqlTransaction DbCon
SqlConnection.BeginTransaction
创建一个特定于MS SQL Server的SqlTransaction
DbConnection.BeginTransaction
创建一个DbTransaction
,它是通用的,依赖于基础连接来创建特定于数据库的事务。如果您的DbConnection
类型为SqlConnection
,则这将是一个SqlTransaction
DbConnection.BeginDbTransaction
是一种受保护的方法,如果要创建自己的类继承自DbConnection
,则可以重写该方法DbConnection.EnclestTransaction(transaction)
。使用TransactionScope,连接将(取决于数据库提供程序,至少它应该)自动登记到TransactionScope中(如果在打开连接时存在)。在WCF中,TransactionScope还可以跨服务边界传递,并可用于将多个服务调用的结果作为单个事务提交
SqlConnection.BeginTransaction
创建一个特定于MS SQL Server的SqlTransaction
DbConnection.BeginTransaction
创建一个DbTransaction
,它是通用的,依赖于基础连接来创建特定于数据库的事务。如果您的DbConnection
类型为SqlConnection
,则这将是一个SqlTransaction
DbConnection.BeginDbTransaction
是一种受保护的方法,如果要创建自己的类继承自DbConnection
,则可以重写该方法这些都是特定于从中创建它们的数据库连接的,其使用方式与TransactionScope不同,TransactionScope不依赖于数据库。我认为,如果您想协调多个连接之间的事务,必须显式调用
DbConnection.EnclestTransaction(transaction)
。使用TransactionScope,连接将(取决于数据库提供程序,至少它应该)自动登记到TransactionScope中(如果在打开连接时存在)。在WCF中,TransactionScope还可以跨服务边界传递,并可用于将多个服务调用的结果作为单个事务提交。这些服务的MSDN文档说明了什么?这些服务的MSDN文档说明了什么?感谢您的解释。您能将这些与TransactionScope()区分开来吗?他们之间有什么关系吗?谢谢你的解释。您能将这些与TransactionScope()区分开来吗?他们之间有什么关系吗?