Действует ли оператор using в SqlCommand.Connection так же? - PullRequest
1 голос
/ 01 июня 2011

Закрывает ли размещение SqlCommand.Connection в блоке using соединение таким же образом, как и размещение SqlConnection в его собственном блоке using? (Is # 1 = # 2)

Пример 1

using (var cmd = GetCommandWithConnectionSetInternally(connString))
{ 
    using (cmd.Connection) 
    {

    }
}

Пример 2

using(var conn = new SqlConnection(connString))
{
     using(var cmd = new SqlCommand(cmdText, conn))
     {

     }
 }

Итак, закрывается ли соединение в Примере 1, как в Примере 2, после выхода из блока «using»?

1 Ответ

4 голосов
/ 01 июня 2011

Я не вижу, чтобы это работало как-то иначе, поскольку использование - это просто краткая форма try {} finally {} с вызовом Dispose в блоке finally.Поскольку используемый ресурсный объект - cmd.Connection, он должен быть удален.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...