В течение многих лет клиент вел единую постоянную связь с базой данных. Проблема заключается в обнаружении прерывистого сбоя подключения и постепенного повторного подключения. Довольно часто вы не будете знать, что соединение не установилось, пока не попробуете его использовать (т. Е. При выборе select будет выброшена «Общая ошибка SQL»)
Теперь мы используем глобально доступный статический класс, задача которого - передать вам новое соединение с базой данных, а когда вы закончите с этим, вы используете тот же класс, чтобы избавиться от соединения.
DbConnection conn = Database.GetConnection();
try
{
//do stuff with the connetion
...
}
finally
{
Database.DisposeConnection(conn);
}
Мы делаем это, потому что требуется инициализация, когда мы подключаемся к базе данных (мы храним информацию - CONTEXT_INFO SQL Server, и мы должны очистить эту информацию при отключении)