我在ADO.Net上看到了一个示例,其中正在执行事务而未设置命令的事务属性,如下面的代码所示。
这是可能的还是需要显式设置命令的事务属性?
// Start a local transaction.
SqlTransaction sqlTran = connection.BeginTransaction();
// Enlist a command in the current transaction.
SqlCommand command = connection.CreateCommand();
-----
-----
sqlTran.Commit()
答案 0 :(得分:1)
这应该抛出一个运行时异常。也就是说,如果您在SqlConnection
上有一个活动事务,并且没有将对应SqlTransaction
的引用分配给SqlCommand.Transaction
属性并尝试执行该命令,那么您应该得到一个例外
简而言之,在与活动事务的连接上执行命令时,显式设置Transaction
属性。