मेरे पास एक सारणी है जिसमें एक सामान्य कॉलम वाली तालिका पर एक अद्वितीय अनुक्रमणिका है। उदाहरण के लिए तालिका निम्न स्तंभ होंगे:डीबीकॉन्टेक्स्ट सेव चेंज ऑर्डर ऑफ स्टेटमेंट एक्जिक्यूशन
TableID, ID1 आईडी 2, क्रमवार
अद्वितीय सूचकांक कॉलम ID1 आईडी 2, क्रमसंख्या के पार है।
मेरी समस्या यह है कि डेटाबेस से रिकॉर्ड हटाने पर मैं नियमों को फिर से समझता हूं ताकि वे फिर से अनुक्रमिक हो सकें। मेरे हटाने समारोह इस तरह दिखेगा:
public void Delete(int id)
{
var tableObject = Context.TableObject.Find(id);
Context.TableObject.Remove(tableObject);
ResequenceOrdinalsAfterDelete(tableObject);
}
मुद्दा है कि जब मैं Context.SaveChanges() यह अद्वितीय सूचकांक टूट जाता है के रूप में यह एक अलग क्रम में स्टेटमेंट्स को निष्पादित करने की तुलना में वे पारित किए गए लगता है कहते हैं। उदाहरण के लिए निम्न होता है:
- resequence ऑर्डिनल्स
- रिकॉर्ड हटाएं
के बजाय:
- रिकॉर्ड
- resequence ऑर्डिनल्स हटाएँ
क्या यह ईएफ का सही व्यवहार है? और यदि ऐसा है, तो निष्पादन के आदेश को मजबूर करने के लिए इस व्यवहार को ओवरराइड करने का कोई तरीका है?
मैं ठीक से इस समझाया नहीं किया है, तो कृपया मुझे बताएं ...
उत्तर के लिए हाय धन्यवाद! मैंने इसे पहले डेटाबेस के साथ कार्यान्वित किया है और जैसा कि आपने कहा है कि यह बदबू आ रही है। कोड भयानक है और दर्द था, साथ ही यह केवल व्यवस्थापक अनुभाग से ही पहुंच योग्य होगा और छोटी मात्रा में बदलाव करेगा। शोधकर्ताओं के लिए मुख्य कारण यह है कि प्रशासनिक उपयोगकर्ता कई तालिकाओं पर ऑर्डर सेट कर सकते हैं और अंतराल को देखते समय चुनिंदा या भ्रमित हो जाते हैं ... एक बमर का बिट जो ईएफ आपके द्वारा प्रदान किए जाने वाले क्रम में निष्पादित नहीं करता है। – didiHamman