Что такое хорошая практика для обработки соединений SQL в вызове WCF? - PullRequest
0 голосов
/ 11 июня 2010

Предположим, я хочу создать (без сохранения состояния) службу WCF с тремя методами, предоставляемыми в конечной точке: performSqlOperationA(), performSqlOperationB() и performSqlOperationC(). Каждый метод вставляет данные в базу данных SQL.

Как я видел в своем офисе, каждый метод начинался с кода для инициализации объекта SqlConnection. Каждый метод заканчивается кодом для его безопасного удаления.

Какова хорошая практика для кодирования этих методов WCF, чтобы объект SqlConnection инициализировался и располагался в каждом методе без необходимости выполнять эти действия в каждом методе? Я знаю, что могу инициализировать соединение в конструкторе для класса для методов WCF, но я не знаю, как его утилизировать ... Вызовы не могут быть заключены в блок using.

Одно решение, с которым я знаком, это PostSharp , которое позволяет мне установить атрибут, который заставляет конкретный код автоматически запускаться в начале и в конце каждого вызова метода, но это было бы очень предпочтительно делать это только с .net framework.

1 Ответ

3 голосов
/ 11 июня 2010

Рекомендуется инициализировать и утилизировать объект SqlConnection в каждом вызове метода (или в методе доступа к частным данным, вызываемым из операции службы WCF) с помощью оператора using.

public void performSqlOperationA()
{
    ...
    using(SqlConnection connection = ...)
    {
        ...
    }
    ...
}

Что тебе не нравится в этом?

...