Мне просто нужно мнение о правильном использовании или правильном дизайне в отношении использования объекта SqlConnection. Какой из 2 ниже является лучшим использованием:
Класс провайдера данных, чьи методы (каждый из них) содержат объект SqlConnection (и удаляются по завершении). Нравится:
IList<Employee> GetAllEmployees()
{
using (SqlConnection connection = new SqlConnection(this.connectionString)) {
// Code goes here...
}
}
Employee GetEmployee(int id)
{
using (SqlConnection connection = new SqlConnection(this.connectionString)) {
// Code goes here...
}
}
или
SqlConnection connection; // initialized in constructor
IList<Employee> GetAllEmployees()
{
this.TryOpenConnection(); // tries to open member SqlConnection instance
// Code goes here...
this.CloseConnection();
// return
}
Employee GetEmployee(int id)
{
this.TryOpenConnection(); // tries to open member SqlConnection instance
// Code goes here...
this.CloseConnection();
// return
}
Или есть лучший подход, чем этот? У меня есть целевое приложение типа веб-сканера, и это приложение будет сканировать 50 или более веб-сайтов одновременно (многопоточно), причем каждый веб-сайт содержится в объекте-сканере, и у каждого объекта-сканера есть экземпляр класса поставщика данных (см. Выше).