Как я закрываю OracleConnection в.NET

, почему сообщество DDD не использует пакетные функции

Я думаю, вы обнаружите, что хорошие проекты следуют пакетным функциям.

В примерах вы можете обнаружить, что за ним не следят. Щедрая интерпретация заключается в том, что авторы пытаются упростить распознавание разделения интересов и направлений стрелок зависимости.

Менее щедро? авторы не обращают внимания или не знают лучше.

Должны ли мы использовать пакетные функции с DDD? Если да, то как это сделать?

Да, и почти так же, как если бы вы не не делали DDD, вы бы делали пакет по функциям. Это ортогональные проблемы.

9
задан Mike Comstock 30 March 2009 в 18:14
поделиться

4 ответа

using (OracleConnection connection = new OracleConnection(connectionString))
{
    using (OracleCommand command = new OracleCommand(sql, connection))
    {
        using (OracleDataReader reader = cmd.ExecuteReader())
        {
        }
    }
}

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

17
ответ дан 4 December 2019 в 07:24
поделиться

Оба ответа находятся в значительной степени на цели. Вы всегда хотите назвать.Dispose () на любом объекте IDisposeable. Путем обертывания в "использовании" Вас высокий компилятор, чтобы всегда реализовать try/finialy блок для Вас.

1 замечание, если Вы хотите избежать вложения, можно написать тот же код как это:

 using (OracleConnection connection = new OracleConnection(connectionString))
 using (OracleCommand command = new OracleCommand(sql, connection))
 using (OracleDataReader reader = cmd.ExecuteReader())
    {
        // do something here
    }
7
ответ дан 4 December 2019 в 07:24
поделиться

using гарантирует, что Ваше соединение закрывается. Вы могли также передать в CommandBehavior.CloseConnection к Вашей команде ExecuteReader метод для закрытия его прежде Dispose назван.

3
ответ дан 4 December 2019 в 07:24
поделиться

Это достаточно хорошо. использование оператора перенесет расположить оператор, поэтому даже если исключение будет выдано, Вы в безопасности, это - мой предпочтительный способ расположить ресурс.

using(OracleConnection connection = new OracleConnection(connectionString);    )  
{
   //Create a command object 
    using(OracleCommand command = new OracleCommand(sql, connection))
    {
      using(OracleDataReader reader = cmd.ExecuteReader())
      {
      }

    }
    // whatever...
}

Я думаю использованием "использование", Вы, просит компилятор вводить попытку... наконец блок, и в наконец блоке, это закроет доступный объект для Вас.

3
ответ дан 4 December 2019 в 07:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: