2012-02-15 15 views
51

में मान्य नहीं है मैंने अपने डेटाबेस में एक नई तालिका डाली है और 4 टेबल हैं जिनके साथ विदेशी कुंजी संबंध है। मैंने सोचा कि मैंने सभी 4 को उसी तरह कॉन्फ़िगर किया है, लेकिन मुझे यह त्रुटि मिलती है;इकाई फ्रेमवर्क 4.0: त्रुटि 113: बहुतायत भूमिका

त्रुटि 15 त्रुटि 113: गुण 'FK_OtherLeaves_ReportCellImages' में बहुतायत भूमिका 'ReportCellImage' में मान्य नहीं है। क्योंकि निर्भर भूमिका में सभी गुण निरर्थक हैं, प्रिंसिपल रोल की बहुतायत '0..1' होना चाहिए।

तो मेरी टेबल को सरल बनाने के लिए;

ReportCellImage तालिका ReportCellImageId क्षेत्र है जो प्राथमिक कुंजी और एक पूर्णांक में

OtherLeave तालिका 4

अन्य तालिकाओं समान हैं और एक डिफ़ॉल्ट के साथ एक नल विदेशी कुंजी के रूप में ReportCellImageId फ़ील्ड में शामिल सभी के पास ReportCellImage तालिका

यह एक हालिया परिवर्तन है, इसलिए जब मैं डेटाबेस से अपनी edmx फ़ाइल अद्यतन करता हूं, तो मुझे यह त्रुटि क्यों मिलती है और मैं इसे कैसे ठीक करूं?

उत्तर

53

यदि आपका एफके निरर्थक है तो मूल इकाई में आपकी बहुतायत 0..1 होना चाहिए - इसमें डिफ़ॉल्ट मान में कोई भूमिका नहीं है क्योंकि आप एफके को शून्य निर्दिष्ट कर सकते हैं। तो आपकी सभी निर्भर संस्थाएं 0..1 - * आपकी मूल इकाई के साथ संबंध में होनी चाहिए।

+0

जो मैं वास्तव में चाहता हूं वह 1 से कई रिश्ते हैं। क्षेत्र बेहतर है अगर यह शून्य नहीं है। Howevever तो मैं विदेशी कुंजी बाधा के कारण मौजूदा डेटाबेस में परिवर्तन तैनात नहीं कर सकता। बीटीडब्ल्यू मैं एक डीबीए नहीं हूं और अगर मैं था तो शायद मुझे पता चलेगा कि इसे आसानी से कैसे किया जाए। – arame3333

+3

ईएफ आपको ऐसा करने की अनुमति नहीं देगा। यदि आपका क्षेत्र शून्य है तो आपके पास 1 से अधिक नहीं हो सकते हैं। आपको कई लोगों को 0..1 का उपयोग करना होगा। –

+0

मुझे जो मिला है वह यह है कि यदि मैं अपनी मेज पर एक नया गैर-शून्य क्षेत्र चाहता हूं, तो मुझे पहले इसे एक शून्य क्षेत्र के रूप में बनाने और इसे पॉप्युलेट करने की आवश्यकता है। तो मैं इसे गैर-शून्य बना सकता हूं। जीने के लिए तैनाती करते समय मुझे वही कदम उठाने पड़ते हैं। मुझे आश्चर्य है कि क्या कोई बेहतर तरीका है? वैसे भी जब यह सब करते हैं और डेटाबेस से ईएफ अद्यतन करते हैं तो ईएफ में सेटिंग्स हमेशा डेटाबेस परिवर्तनों से मेल नहीं खाती हैं और इसलिए मुझे इस प्रकार की बग मिलती है। तकनीकी रूप से आपके उत्तर सही हैं इसलिए मैं आपको एक टिक दूंगा। – arame3333

51

मेरे पास एक ही संदेश था और यह परेशान था क्योंकि डीबी में संशोधित टेबल उन लोगों से भिन्न थे जिनके लिए मुझे संदेश मिल रहा था।

मैंने गुणा को 0..1 से कई लोगों को बदलने की कोशिश की लेकिन संदेश "जारी कस्टम टूल" आदेशों के बाद भी, सफाई और पुनर्निर्माण के बाद भी जारी रहा।

डीबी

से संबंध एफई के बारे में शिकायत की गई थी छोड़ने और अद्यतन करने मॉडल
+9

यह दुर्भाग्यपूर्ण है, लेकिन अक्सर ईएफ के साथ मामला प्रतीत होता है। आप जो भी गलत कर चुके हैं, उसे पूरा करने की कोशिश कर रहे युग व्यतीत कर सकते हैं, केवल यह निष्कर्ष निकालने के लिए कि आप नहीं थे :( – Benjol

+6

कभी-कभी समाधान को बंद करने और फिर से खोलने से ये त्रुटियां गायब हो सकती हैं। – Benjol

+4

कई चीजों की कोशिश करने के बाद, आपका सरल दृष्टिकोण काम करता है :) – Wil

8

द्वारा हल सही अपने EDX diagrame में संबंध पर क्लिक करें। प्रोप्रेटी में, END1 गुणांक को 0..1 (शून्य या YOURTABLENAME में से एक) में बदलें

+0

सही उत्तर - लेकिन आईएमओ आरेख की तुलना में "एसोसिएशन" खंड में डेटाबेस मॉडल ब्राउज़र से करना आसान है। –

0

मुझे एक नई तालिका जोड़ने के बाद भी यही समस्या थी, मैंने रिश्ते को छोड़कर यहां सभी समाधानों का प्रयास किया, लेकिन ऐसा नहीं हुआ काम। मेरे लिए काम करने वाला समाधान वास्तव में मॉडल को पूरी तरह से हटा देना और एक नया मॉडल बनाना था। Web.config में कनेक्शन स्ट्रिंग को मिटाना न भूलें ताकि आपका नया ईएफ उसी नाम का उपयोग कर सके।

+0

क्या आपके पास एक विशाल डेटाबेस है? मुझे लगता है कि आप ईएफ कोड पहले मॉडल का उपयोग कर सकते हैं, लेकिन यह अभी भी एक बड़ा डेटाबेस हटाने और जोड़ने के लिए एक बहुत बड़ा सौदा होगा। – Clarence

0

इकाई कक्षाओं में इकाई संदर्भ को हटाने के बाद डेटाबेस में मैन्युअल रूप से संदर्भ को हटाने के बाद, फिर मुझे हल समाधान को हल करने के लिए चरण-दर-चरण चरण को हल करने के बाद मुझे एहसास हुआ कि त्वरित समाधान समाप्त करने के बाद WithOptional को WithRequired के साथ बदलना होगा संदर्भ में मैंने पहले फ़ील्ड को शून्य से गैर-शून्य करने के लिए बदल दिया।

protected override void OnModelCreating(DbModelBuilder modelBuilder)

2

मैं डाटाबेस से अद्यतन मॉडल में मॉडल से अद्यतन तालिका नष्ट कर दिया और उसके बाद, यह फिर से जोड़ा गया है और यह मदद की।

+0

जो इसे मेरे लिए तय करता है –

0

मैं .edmx फ़ाइल बनाने के लिए डेटाबेस का पहला दृष्टिकोण उपयोग कर रहा हूं। जब मैं इस मुद्दे पर भाग गया, तो मैंने ऊपर दिए गए कुछ सुझावों की कोशिश की, लेकिन अभी भी त्रुटियां हो रही थीं, इसलिए मैंने इसे हटा दिया।edmx फ़ाइल और अद्यतन फ़ाइल से पूरी फ़ाइल को ताज़ा कर दिया।

मुझे पता चला है कि कभी-कभी मौजूदा डेटाबेस के अपडेट के बाद ईएफ भ्रमित हो जाता है, और जब मूल कारण ढूंढना आदर्श होता है, तो किसी काम पर एक घंटे काम करने में एक घंटे खर्च करना संभव नहीं है (जैसे मेरा)

हमारा डीबी नया और छोटा है इसलिए फ़ाइल को ताज़ा करना आसान है और इसमें अधिक समय नहीं लगता है।
समस्या चली गई, आगे बढ़ रही थी। । ।

संबंधित मुद्दे