Я постараюсь описать это как можно проще. У нас есть SqlConnection
и 3 метода.
1-й тип
Этот тип открывает одно SqlConnection, а методы имеют свойство SqlConnection. В основном они просто используют sConnection, а внутри метода создают, используют, закрывают SqlCommand и SqlDataReader.
using (SqlConnection sConnection = new SqlConnection(string))
{
sConnection.Open();
Method objMethod = new Method();
objMethod.SqlConnection = sConnection;
objMethod.DoSomething();
Method2 objMethod = new Method2();
objMethod2.SqlConnection = sConnection;
objMethod2.DoSomething();
Method3 objMethod = new Method3();
objMethod3.SqlConnection = sConnection;
objMethod3.DoSomething();
}
2-й тип
Этот тип создаст новые SqlConnection, SqlCommand, SqlDataReader внутри каждого метода отдельно. Для 3 методов потребуется открыть и закрыть 3 SqlConnections.
Method objMethod = new Method();
objMethod.DoSomething();
Method2 objMethod = new Method2();
objMethod2.DoSomething();
Method3 objMethod = new Method3();
objMethod3.DoSomething();
Вопрос в том, следует ли сохранять SqlConnection инкапсулированным в методах или безопасно создавать в SqlConnection и использовать это открытое соединение в методах без необходимости открывать новое.
Спасибо