c# - Is this locking Okay? -


मेरे पास तालिका है जिसमें अनुक्रम संख्या है

तालिका संरचना

  अनुक्रम जनरेटर साल के अंत महीने का महीना intNetNumber int  

वर्ष + महीना प्राथमिक कुंजी बनाते हैं अनुक्रम हर महीने रीसेट हो जाता है।

मैं डीएएल उत्पन्न करने के लिए सबसोनिक का उपयोग कर रहा हूं। अगले अनुक्रम संख्या प्राप्त करने के लिए मैंने एक वर्ग लिखा है जो अनुरोधकर्ताओं के लिए अगले नंबर देता है:

<प्री> निजी स्थिर पढ़ने के लिए ऑब्जेक्ट _ लॉक = नया ऑब्जेक्ट (); निजी स्थिर रीडोनली स्ट्रिंग FormatString = "{0} {1} {2} {3}"; निजी स्थिर रीडोनली स्ट्रिंग संख्याफ़ॉर्मेट = "000000"; सार्वजनिक स्थिर वस्तु GetNextNumber (स्ट्रिंग उपसर्ग) {ताला (_ लॉक) {int yr = DateTime.Now.Year; इंट महीने = दिनांक समय.अब.माँथ; अनुक्रम जनरेटर संकलन col = नया अनुक्रम जनरेटर चयन ()। जहां (अनुक्रम जनरेटर। कॉलम। साल, तुलना। एक््वल, यार)। जहां (अनुक्रम जनरेटर। कॉलम। मौन, तुलना। एक्लॉल्स्, महीना) .लोड (); If (col == रिक्त || col.Qount == 0) {सीक्वेंस जनरेटर tr = नया अनुक्रम जनरेटर (); Tr.Year = yr; Tr.Month = माह; टीआर। NextNumber = 1; tr.Save (); वापसी स्ट्रिंग। प्रारूप (प्रारूप स्ट्रिंग, उपसर्ग, साल, महीना, tr.NextNumber.ToString (NumberFormat)); } अनुक्रम जनरेटर टी = कॉल [0]; T.NextNumber + = 1; t.Save (); वापसी स्ट्रिंग। प्रारूप (प्रारूप स्ट्रिंग, उपसर्ग, साल, महीना, टी। अगली संख्या। टॉस्ट्रिंग (नंबरफ़ॉर्मेट)); }}

यह लॉक नहीं होगा जब आपके पास एक से अधिक क्लाइंट लॉकिंग अलग _lock वस्तुओं। इसके लिए आपको डेटाबेस लॉकिंग तंत्र का उपयोग करना चाहिए।


Comments