का उपयोग कर मैं इस तरह ServiceStack.ORMLite का उपयोग कर भंडार पैटर्न को लागू करने हूँ:लेनदेन ServiceStack.ORMLite
public class MyRepository : IMyRepository
{
private IDbConnectionFactory DbConnectionFactory = null;
public MyRepository(IDbConnectionFactory dbConnectionFactory)
{
DbConnectionFactory = dbConnectionFactory;
}
public void MyMethod()
{
using (var connection = DbConnectionFactory.OpenDbConnection())
using (var cmd = connection.CreateCommand())
{
//Do something here
}
}
}
लेकिन मैं कैसे DbTransaction को संभालने के लिए जब मैं कुछ डीबी आपरेशन ताना करने की जरूरत है पता नहीं है एक डीबीट्रांसक्शन में। ऐसा लगता है कि TransactionScope
एक समाधान है लेकिन मुझे नहीं पता कि इसके लिए रास्ता बहुत भारी है या नहीं।
यह ... मैं मेरे सवाल redfine करने की कोशिश करेंगे ... –
यह अच्छा एक IDbConnection अनुरोध के अनुसार केवल एक बार खोलने के लिए और उपयोग के बाद निपटारा करने के लिए है? एक बुरा सवाल पूछकर मेरी गलती है मैंने सोचा कि मैं चाहिए प्रत्येक विधि की शुरुआत में कनेक्शन खोलें और विधि समाप्त होने पर इसे बंद करें। –
यह ठीक है, अगर आप कनेक्शन पूल का उपयोग कर रहे हैं (यानी एसक्लसेवर के लिए डिफ़ॉल्ट व्यवहार) कनेक्शन वास्तव में बंद नहीं है, तो इसे अभी पूल में वापस छोड़ दिया गया है। लेकिन हाँ या तो अनुरोध स्कोप का उपयोग करना ठीक है क्योंकि यह एकल-थ्रेडेड प्रति-अनुरोध है, इसलिए कनेक्शन अनुरोध अन्य अनुरोधों के साथ सुरक्षित अनुरोध को सुरक्षित रूप से साझा किया जा सकता है। – mythz