У меня есть ситуация, когда у меня есть 2 базы данных.Транзакция базы данных с двумя базами данных - этот метод правильный?
Менеджер имеет таблицу компаний, исходя из этого значения. Мне нужно создать новую БД.
Так что я использую TransactionScope. Я хочу знать, правильно ли это?
Будет ли это откат обоих изменений? В обоих случаях, если ошибка возникает?
using (TransactionScope ts = new TransactionScope())
{
try
{
using(var ManagerContext = new ManagerEntities(
ConnectionStringManager.GetManagerConnectionString()))
{
//Operations on Manager DB
// Create new Company and get NEWCOMPANYID
// -- Used to create new DB
}
using(var companyContext = new CompanyEntities(
ConnectionStringManager.GetCompanyConnectionString(
NEWCOMPANYID.ToString())))
{
//Create New Company DB
}
ts.Complete();
}
catch (Exception ex)
{
ts.Dispose();
}
}
Трюк избыточен, так как оператор 'using' уже обеспечивает удаление для' TransactionScope'. – Steven
Я не понимаю, что вы имеете в виду. У меня есть ts.Dispose(), если какая-либо ошибка возникает в блоке try {} –
Это будет работать, если активирован координатор распределенной транзакции (например, см. Http://www.luisrocha.net/2011/08/managing -transactions-with-entity.html) – Matten