Здравствуйте, IT, Вы писали:
IT>Здравствуйте, MozgC, Вы писали:
IT>Добавил параметр в метод SetSpCommand, позволяющий проверять параметры процедуры на существующем соединении и соответствующую настройку Configuration.OpenNewConnectionToDiscoverParameters, которая по умолчанию == true.
Спасибо за оперативность, но к сожалению из-за все того же блока в методе MySqlConnection.Open() при открытии второго подключения возникает исключение:
if (settings.AutoEnlist && Transaction.Current != null)
{
driver = DriverTransactionManager.GetDriverInTransaction(Transaction.Current);
if (driver != null &&
(driver.IsInActiveUse ||
!driver.Settings.EquivalentTo(this.Settings)))
throw new NotSupportedException(Resources.MultipleConnectionsInTransactionNotSupported);
}
из текущей транзакции, вызыванной TransactionScope, берется драйвер, у которого IsInActiveUse = true, и получаем все то же исключение.
Но, если перед этим выставить Configuration.OpenNewConnectionToDiscoverParameters в false :
Configuration.OpenNewConnectionToDiscoverParameters = true;
using (new TransactionScope())
{
using (var db = new DbManager())
{
DataTable customers = db.SetSpCommand("GetAllCustomers").ExecuteDataTable();
}
}
то отрабатывает нормально
Я что-то не так понял по поводу OpenNewConnectionToDiscoverParameters или надо поправить? Или как раз в случае MySql надо в false выставлять этот параметр и так задумано?