Разница между - > и. в структуре?

Как обычно, ответ: это зависит. Различная реализация классов IDisposable по-разному, и Вам решать проводить необходимое исследование.

До SqlClient идет, методические рекомендации должны сделать следующее:

using (SqlConnection conn = /* Create new instance using your favorite method */)
{
    conn.Open();
    using (SqlCommand command = /* Create new instance using your favorite method */)
    {
        // Do work
    }
    conn.Close(); // Optional
}

Вы должны звонить Dispose (или Close *) на соединении! Сделайте не , ожидают сборщика "мусора" для чистки соединения, это свяжет соединения в пуле до следующего цикла GC (по крайней мере). Если Вы звоните Dispose, не необходимо звонить Close, и начиная с эти using, конструкция делает настолько легким обработать Dispose правильно, нет действительно никакой причины звонить Close.

Соединения автоматически объединены, и вызов Dispose / Close на соединении не делает физически близко соединения (при нормальных обстоятельствах). Не пытайтесь реализовать свое собственное объединение. SqlClient выполняет очистку на соединении, когда это получено от пула (как восстановление контекста базы данных и опций соединения).

*if Вы звоните Close, удостоверьтесь, что сделали это безопасным от исключения способом (т.е. выгодой или наконец блоком).

21
задан Sam 13 May 2011 в 23:05
поделиться