2012-12-31 10 views
5

यदि मेरा डीएएल डैपर-डॉट-नेट का उपयोग कर रहा है तो मैं लेनदेन कैसे बना सकता हूं?"dapper-dot-net" में लेनदेन

मेरा सी # विनफॉर्म एप्लिकेशन नेटवर्क में उपयोग किया जाएगा और डेटा केंद्रीय एसक्यूएल सर्वर में सहेजा जाएगा।

मेरे उपयोग के मामले में लेनदेन के उपयोग की आवश्यकता है। क्या मैं इसे डैपर का उपयोग करके कर सकता हूं, या मुझे एनएचबीर्नेट जैसे कुछ उपयोग करने की आवश्यकता होगी?

इसके अलावा, क्या मैं संग्रहित प्रक्रियाओं का उपयोग कर रहा हूं, तो इस ढांचे के साथ कोई जोखिम या सीमा है? क्या मुझे किसी भी संभावित सीमाओं के कारण अपना दृष्टिकोण बदलना होगा?

उत्तर

8

मैं sprocs का उपयोग कर और जोखिम आप व्यवसायिक के साथ ही जोखिम भी हैं के साथ किसी भी सीमाओं में चलाने आप sprocs के साथ होता

यहाँ कैसे व्यवसायिक

के साथ लेनदेन का उपयोग करने पर एक सरल उदाहरण है नहीं
using (var connection = Db.GetConnection()) 
{ 
    connection.Open(); 
    IDbTransaction transaction = connection.BeginTransaction(); 
    try 
    { 
     var newId= connection.Query<int>(@"Select id from table1 where [email protected]", new{id}, transaction).Single(); 
     connection.Execute(@"INSERT into table1 ...",new {p1, p2}, transaction); 
     connection.Execute(@"INSERT into table2 ...",new {p1, p2}, transaction); 
     transaction.Commit(); 
    } 
    catch (Exception ex) 
    { 
     transaction.Rollback(); 
    } 
} 
+0

:) मुझे लगता है कि मैं लेनदेन को आईडीबीट्रांसेंस के रूप में घोषित करना भूल गया था। – mosesfetters

+0

आपकी टिप्पणियों के लिए धन्यवाद। साथ ही, मुझे आशा है कि संग्रहीत प्रक्रिया का उपयोग करते समय कोई सीमा या समस्या नहीं होगी। असल में, मैं ड्रेपर के साथ नया हूं इसलिए मैंने उससे पूछा। – DPSoni

+0

@DPSoni यह किसी भी अन्य ADO.NET उपयोग करने के लिए समान रूप से व्यवहार करेंगे –

3

डैपर एडीओनेट लेनदेन और निहित लेनदेन दोनों का उपयोग कर सकते हैं। Ado.net लेनदेन के लिए, सामान्य रूप से लेनदेन सामान्य रूप से बनाएं और इसे मुख्य विधियों पर उपलब्ध transaction पैरामीटर के माध्यम से प्रदान करें। निहित लेनदेन के लिए, सामान्य रूप से TransactionScope का उपयोग करें।

संबंधित मुद्दे