Есть ли разница между методами транзакций SMO ServerConnection и использованием свойства SqlConnectionObject?

Я использую SMO для создания баз данных и таблиц на SQL Server. Я хочу сделать это в транзакции. Являются ли оба эти метода действительными и эквивалентными:

Первый метод:

Server server;
//...
server.ConnectionContext.BeginTransaction();
//...
server.ConnectionContext.CommitTransaction();

Второй метод:

Server server;
// ...
SqlConnection conn = server.ConnectionContext.SqlConnectionObject;
SqlTransaction trans = conn.BeginTransaction();
// ...
trans.Commit();

1 ответ

Решение

Два эквивалентны. Использование объекта SqlTransaction позволяет поместить транзакцию в using объем:

using(SqlTransaction  trn = conn.BeginTransaction ())
{
 ...
 trn.Commit ();
}

Это лучший шаблон при наличии исключений.

Другие вопросы по тегам