Dapper menawarkan dua cara mengendalikan sambungan:
Dengan pendekatan ini, anda bertanggungjawab sepenuhnya untuk membuka dan menutup sambungan, sama seperti bekerja dengan ADO.NET secara langsung.
Dapper boleh mengendalikan sambungan buka dan tutup secara automatik. Ini adalah setanding dengan DataAdapter.Fill(), tetapi mungkin tidak sesuai untuk semua senario.
Secara umumnya disyorkan untuk menguruskan sambungan sendiri jika anda menutup sambungan pada butiran yang lebih luas (mis., setiap permintaan) kerana ia meningkatkan kawalan kod.
Tidak kira pendekatan pengurusan sambungan, ingat untuk menutup sambungan untuk mengelakkan kebocoran sumber dan meningkatkan prestasi dengan mengembalikan ke kumpulan sambungan.
Untuk mengurus urus niaga dengan lebih baik, pertimbangkan untuk melaksanakan corak UnitOfWork, seperti yang ditunjukkan di bawah:
public sealed class UnitOfWork : IUnitOfWork { // Connection and transaction management logic here }
Repositori anda kemudiannya boleh terima UnitOfWork:
public sealed class MyRepository { public MyRepository(IUnitOfWork unitOfWork) { /* Implementation */ } public MyPoco Get() { /* Implementation using unitOfWork */ } public void Insert(MyPoco poco) { /* Implementation using unitOfWork */ } }
Dengan menggunakan UnitOfWork, anda memusatkan kawalan pengurusan sambungan dan urus niaga, meningkatkan organisasi kod dan kebolehselenggaraan.
Untuk butiran lanjut tentang UnitOfWork, rujuk kod sumber dan sumber luaran yang disediakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Harus Menutup Sambungan Dengan Betul Apabila Menggunakan Dapper?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!