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");
}