मेरे पास टेबल और उपयोगकर्ता टेबल के बीच एक विदेशी कुंजी बाधा है। विशेष रूप से, सत्र.यूआईडी = उपयोगकर्ता.आईडी। कभी-कभी, मुझे सत्र चाहिए। यूआईडी शून्य होना चाहिए। क्या इसकी अनुमति दी जा सकती है? जब भी मैं ऐसा करने की कोशिश करता हूं, मुझे एक एफके प्रतिबंध उल्लंघन मिलता है।एसक्यूएल सर्वर 2005: निरर्थक विदेशी कुंजी बाधा
विशेष रूप से, मैं LINQ के माध्यम से सत्रों में एक पंक्ति डाल रहा हूं। मैंने सत्र सेट किया। उपयोगकर्ता = शून्य; और मैं इस त्रुटि मिलती है:
An attempt was made to remove a relationship between a User and a Session. However, one of the relationship's foreign keys (Session.UID) cannot be set to null.
हालांकि, जब मैं लाइन है कि उपयोगकर्ता संपत्ति nulls निकालने के लिए, मैं अपने SubmitChanges लाइन पर इस त्रुटि मिलती है:
Value cannot be null. Parameter name: cons
मेरी टेबल में से कोई भी एक क्षेत्र कहा जाता है 'विपक्ष ', और न ही यह मेरी 5,500-लाइन DataContext.designer.cs फ़ाइल में है, न ही यह किसी भी संबंधित ऑब्जेक्ट के लिए क्विकवॉच में है, इसलिए मुझे नहीं पता कि' विपक्ष 'क्या है।
डेटाबेस में, सत्र.यूआईडी एक शून्य से इंटेल फ़ील्ड है और User.ID एक गैर-शून्य है। मैं ऐसे सत्र रिकॉर्ड करना चाहता हूं जो यूआईडी हो या न हो, और मैं उस एफके रिश्ते पर बाधा को अक्षम किए बिना इसे करूंगा। क्या इसे करने का कोई तरीका है?
राइट एडीके। +1 एक विदेशी कुंजी की परिभाषा यह है कि यह एक तालिका में एक मान है जो किसी अन्य तालिका में प्राथमिक कुंजी मान से मेल खाना चाहिए या शून्य होना चाहिए। – Alan
तार्किक रूप से, यह समझ में आता है, है ना? मैंने इसे इस तरह पढ़ा: अगर मैं किसी अन्य तालिका में एक रिकॉर्ड को संदर्भित करने का प्रयास करता हूं, तो सुनिश्चित करें कि संदर्भ मान्य है। अगर मैं नहीं (एनयूएलएल), जो परवाह करता है। –