Saya menerapkan logika bisnis saya dalam kelas statis sederhana dengan metode statis. Masing-masing metode ini membuka / menutup koneksi SQL saat dipanggil:
public static void DoSomething(string something)
{
using (SqlConnection connection = new SqlConnection("..."))
{
connection.Open();
// ...
connection.Close();
}
}
Tapi saya pikir menghindari membuka dan menutup koneksi menghemat kinerja . Saya membuat beberapa tes lama sekali dengan kelas OleDbConnection (tidak yakin tentang SqlConnection), dan itu pasti membantu untuk bekerja seperti ini (sejauh yang saya ingat):
//pass the connection object into the method
public static void DoSomething(string something, SqlConnection connection)
{
bool openConn = (connection.State == ConnectionState.Open);
if (!openConn)
{
connection.Open();
}
// ....
if (openConn)
{
connection.Close();
}
}
Jadi pertanyaannya adalah - haruskah saya memilih metode (a) atau metode (b)? Saya membaca pertanyaan stackoverflow lain bahwa penyatuan koneksi menghemat kinerja bagi saya, saya tidak perlu repot sama sekali ...
PS. Ini adalah aplikasi ASP.NET - koneksi hanya ada selama permintaan web. Bukan win-app atau layanan.
DbConnection.StateChange
acara untuk memantau perubahan dalam perubahan status koneksi (dan mungkin disimpan secara lokal) daripada memeriksaDbConnection.State
properti secara langsung. Ini akan menghemat biaya kinerja Anda.