У меня были проблемы с разрешениями Unix, я использовал одно и то же git-репо с двумя разными пользователями (один был root
, другой был моим частным пользователем).
Итак, мне пришлось изменить владельца файла на .git/ORIG_HEAD
на моего личного пользователя, который решил проблему.
chown myuser:mygrp .git/ORIG_HEAD
На самом деле выход один.
connection.EnlistTransaction(Transaction.Current)
Он работает и не продвигает транзакцию в распределенную, если в ней нет необходимости (вопреки тому, что говорится в документации)
HTH
Чтобы подключить соединение к TransactionScope, вам необходимо указать 'Enlist = true'
в строке подключения и открыть соединение в области этого объекта TransactionScope.
Вы можете использовать SqlConnection.BeginTransaction
в существующем соединении.
Обновление : вы можете использовать BeginTransaction
следующим образом:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = connection.CreateCommand();
SqlTransaction transaction;
// Start a local transaction.
transaction = connection.BeginTransaction("SampleTransaction");
// Must assign both transaction object and connection
// to Command object for a pending local transaction
command.Connection = connection;
command.Transaction = transaction;
...
...
}
После дополнительных исследований ответ на мой вопрос оказался следующим:
Нет, соединение необходимо открыть после создания объекта TransactionScope.