मैं अपनी परियोजना में TransactionScope
का उपयोग करना चाहता हूं। मैंने इसके बारे में पढ़ा और मैंने पाया कि यह डेटाबेस में एक अंतर्निहित लेनदेन बनाता है। मैं जानना चाहता हूं कि TransactionScope
लॉक टेबल जो इसे कुशलतापूर्वक उपयोग करता है?लेनदेनस्कोप लॉकिंग टेबल और अलगाव लेवल
इस कोड में उदाहरण के लिए:
using (Entities ent = new Entities())
{
using (TransactionScope tran = Common.GetTransactionScope())
{
var oldRecords = ent.tblUser.Where(o => o.UserID == UserID);
foreach (var item in oldRecords)
{
ent.tblUser.DeleteObject(item);
}
और
public static TransactionScope GetTransactionScope()
{
TransactionOptions transactionOptions = new TransactionOptions();
transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.Serializable;
return new TransactionScope(TransactionScopeOption.Required, transactionOptions);
}
tblUser
तक Complete
आदेश मुद्दा बंद कर दिया है?
क्या IsolationLevel
स्पष्ट लेनदेन के समान स्पष्ट लेनदेन में है?
धन्यवाद
(एक पंक्ति पर एक साझा लॉक होने यह प्राप्त करने से वंचित रह सकते हैं
DELETE
के अलावा अन्य अनन्य ताला है कि यह जरूरत है) अच्छा उत्तर। उपरोक्त कोड में @marc_s अगर मैं 'आईडी = 1' के साथ रिकॉर्ड हटा देता हूं और उस पल में कोई अन्य धागा 'आईडी = 1' पढ़ना चाहता है तो क्या हुआ? आपने कहा कि मुझे विशेष लॉक मिलना चाहिए लेकिन 'लेनदेनस्कोप' को तत्काल ताला मिल जाएगा? – Arianयदि आपका 'डिलीट' लेनदेन अनन्य लॉक हो जाता है, तो कोई अन्य लेन-देन इस पंक्ति को पढ़ नहीं सकता है - इसे लॉक कर दिया जाएगा, और संभवतः समय समाप्त हो जाएगा –