ADO.NET 공급자와 트랜잭션을 사용해야합니다.Connection.CreateCommand()를 사용할 때 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에 대한 Google 검색을 시도해보십시오. 검색을 수행 할 시간이 필요하다면 여기를 클릭하십시오. StackOverFlow 또한 관련 항목을 살펴보십시오. 예를 들어이 페이지의 오른쪽에 링크가 있습니다. http://stackoverflow.com/questions/4688993/how-to-handle-sql-transaction-in-this-scenario – MethodMan
'BeginTransaction()'은 트랜잭션을 반환합니다. http://msdn.microsoft.com/en-us/library/86773566.aspx –
질문을 읽을 수있는 코드 블록으로 공식화 할 수 있습니까? – MethodMan