Будет ли блокирующий блок закрывать соединение с базой данных? - PullRequest
37 голосов
/ 09 марта 2011
using (DbConnection conn = new DbConnection())
{
    // do stuff with database
}

Будет ли using блокировать вызов conn.Close()?

Ответы [ 4 ]

52 голосов
/ 09 марта 2011

Да, будет;реализация DbConnection.Dispose() вызывает Close() (как и его производные реализации).

5 голосов
/ 09 марта 2011

Использование блока обеспечит уничтожение объекта DbConnection путем вызова метода Dispose ().Метод Dispose () в свою очередь вызовет метод Close () и должен дождаться, пока он завершит закрытие соединения с базой данных.

5 голосов
/ 09 марта 2011

Да - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.close.aspx

edit: from Microsoft: «Соединение автоматически закрывается по окончании использования блока.»

4 голосов
/ 09 марта 2011

да, конечно, потому что он удалит соединение, а перед тем, как избавиться от внутренней логики соединения, вызывает закрытие.

...