के साथ Autonumber मैं वस्तुओं के संग्रह के माध्यम से लूप करना चाहता हूं और उन्हें सभी को एक टेबल में जोड़ना चाहता हूं। गंतव्य तालिका में एक ऑटो-वृद्धि क्षेत्र है। अगर मैं एक वस्तु जोड़ता हूं तो कोई समस्या नहीं है। यदि मैं दो वस्तुओं को शून्य की प्राथमिक कुंजी के साथ जोड़ता हूं, तो इकाई ढांचा विफल हो जाता है। मैं प्राथमिक कुंजी को मैन्युअल रूप से निर्दिष्ट कर सकता हूं लेकिन ईएफ की कोशिश करने का पूरा बिंदु जीवन को आसान बनाना अधिक जटिल नहीं था। यहां कोड और अपवाद प्राप्त हुआ है।इकाई फ्रेमवर्क
foreach (Contact contact in contacts)
{
Instructor instructor = InstructorFromContact(contact);
context.AddToInstructors(instructor);
}
try
{
context.SaveChanges();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
त्रुटि है:
System.InvalidOperationException: डेटाबेस में परिवर्तन सफलतापूर्वक लागू हुए थे लेकिन वस्तु संदर्भ अपडेट करते समय कोई त्रुटि हुई। ऑब्जेक्ट कॉन्टेक्स्ट एक असंगत स्थिति में हो सकता है। आंतरिक अपवाद संदेश: AcceptChanges जारी नहीं रह सकता क्योंकि ऑब्जेक्ट के प्रमुख मान ऑब्जेक्टस्टेट प्रबंधक में किसी अन्य ऑब्जेक्ट के साथ संघर्ष करते हैं। सुनिश्चित करें कि कॉलिंग AcceptChanges से पहले महत्वपूर्ण मान अद्वितीय हैं। \ परियोजनाओं \ DataMigration \ Program.cs: System.Data.Objects.ObjectContext.SaveChanges (SaveOptions विकल्प)
System.Data.Objects.ObjectContext.SaveChanges() सी में DataMigration.Program.CopyInstructors() में कम से कम : लाइन 52
मेरा अनुमान है कि यह है कि अगर तुम सिर्फ autonumber क्षेत्र को खाली छोड़ देते हैं, डेटाबेस आप के लिए एक प्रदान करेंगे जब आप करते हैं। –
हां यह काम करता है, यह रिकॉर्ड जोड़ता है और प्राथमिक कुंजी असाइन करेगा समस्या यह है कि मुझे इस तरह के विशिष्ट परिदृश्य के लिए अपवाद नहीं मिलना चाहिए। मुझे यकीन है कि ढांचे के भीतर ऐसा करने का 'सही' तरीका है, बस यह सुनिश्चित न करें कि कैसे। – dcompiled
अब तालिका में कुछ विविध परिवर्तन किए जाने के बाद अपवाद को फेंक दिया गया और मॉडल को अपडेट किया गया। निश्चित नहीं है कि क्या अंतर आया। मेरे द्वारा किए गए केवल एक ही बदलाव कॉलम के लिए कुछ डिफ़ॉल्ट मान जोड़ना था और उन स्तंभों को शून्य नहीं करना था। आश्वस्त नहीं हैं कि परिवर्तन अपवाद से संबंधित हैं। – dcompiled