【发布时间】:2012-12-14 01:34:57
【问题描述】:
我需要通过 ADO.NET 提供程序使用事务。
下面是一个正在创建的连接、事务和命令的简单示例。当我使用connection.CreateCommand() 创建命令时,是否需要将事务分配给命令?或者,是因为我使用connection.CreateCommand() 而不是更新命令对象而设置了事务?
var connection = Database.GetConnection();
connection.Open();
var transaction = connection.BeginTransaction();
var command = connection.CreateCommand();
command.Transaction = transaction; // Is this line needed when using connection.CreateCommand()?
*更新*
当我测试两个对象的引用时,它们是相同的。我假设这意味着connection.CreateCommand() 正在返回一个分配了事务的命令。或者这可能不是一个有效的测试。
using (var connection = Database.GetConnection())
{
connection.Open();
var transaction = connection.BeginTransaction();
var command = connection.CreateCommand();
if (object.ReferenceEquals(transaction, command.Transaction))
Debug.WriteLine("EQUAL");
}
【问题讨论】:
-
你需要有一个 SQLTransaction 对象的实例作为初学者。尝试谷歌搜索 C# SQLTransaction,如果你不想花时间进行搜索,那么看看这里 StackOverFlow 发布还可以查看本页右侧的相关链接以获取示例,stackoverflow.com/questions/4688993/…
-
BeginTransaction()返回一个事务。 msdn.microsoft.com/en-us/library/86773566.aspx -
你能用可读的代码块表达你的问题吗?