2015-09-25 7 views
5

ठीक है, मैं पूरी तरह से इस के साथ फंस गया। मेरे पास यहां पोस्ट करने के लिए पर्याप्त जानकारी नहीं हो सकती है, लेकिन मुझे यह भी पता नहीं है कि कहां देखना शुरू करना है। मैं अपनी DAL.edmx फ़ाइल पर "डेटाबेस से मॉडल अपडेट करें" करने का प्रयास कर रहा हूं। मैंने एक ऐसे क्षेत्र को शामिल किया जिसमें पहले शामिल नहीं किया गया था। मैंने ताज़ा करने की कोशिश की, और फिर मैंने डेटाबेस में दृश्य का नाम बदलने और डीएएल से दृश्य हटाने की कोशिश की ताकि मैं इसे फिर से जोड़ सकूं। दोनों बार मैं अगलाडीएएल, सिस्टम। ऑर्ग्यूमेंट अपवाद को संशोधित करने में त्रुटि, "एक ही कुंजी के साथ एक प्रविष्टि पहले से मौजूद है"

enter image description here

मिला है, बिना किसी कारण के मैं दाल में मेरी नाम बदलकर दृश्य जोड़ने की कोशिश की, एक ही अपवाद मिला है। DAL.tt से मैन्युअल रूप से हटाना मदद नहीं करता है। गुगल मुद्दा और केवल 2 गैर-प्रासंगिक परिणाम। मुझे नहीं पता कि कहां देखना शुरू करना है।

मैंने इसे लिखा नहीं है, लेकिन यहां दृश्य का स्रोत एसक्यूएल है (यदि यह मदद करता है)। तथ्य यह है कि ईएफ नामित दृश्य संकेत नहीं जोड़ता है यह एसक्यूएल के साथ हो सकता है? एसक्यूएल mngmnt स्टूडियो में ठीक चलाता है।

SELECT  ID, IssueID, IssueTypeID, IssueText, IssueCreateDate, WeekendDate, CustomerName, Employee, 
        CONVERT(DECIMAL(6, 2), AdjustedTotalRHours, 101) AS AdjustedTotalRHours, AdjustedTotalOHours, 
        AdjustedTotalRHours + AdjustedTotalOHours AS Hours, InvoiceNumber, AdjustedInvoiceAmount, 
        COALESCE 
         ((SELECT  SUM(InvoiceAmount) AS Expr1 
          FROM   TrendingDataFinal AS I1 
          WHERE  (InvoiceNumber = T1.InvoiceNumber) AND (CompanyID = T1.CompanyID) AND 
               (CalType = 'F') AND (Aident = T1.Aident)), 0) AS TotalInvoiceAmount, InvoiceDate, 
        ROUND(DATEDIFF(DAY, InvoiceDate, GETDATE()), 0) AS DaysOutstanding, Notes, Aident, EINC, IsClosed, 
        CompanyID, 
         (SELECT  COUNT(ne.EntryID) AS Expr1 
         FROM   Madison.Notes.Note AS n INNER JOIN 
               Madison.Notes.NoteEntry AS ne ON n.NoteID = ne.NoteId 
         WHERE  (n.Key1 = T1.InvoiceNumber)) AS HasNotes, COALESCE 
         ((SELECT  TOP (1) CompanyName 
          FROM   ReportingCompanies AS I1 
          WHERE  (CompanyId = T1.CompanyID)), '') AS CompanyName, BranchName, PayStatus 
FROM   BillMan_ReportStage AS T1 

किसी भी सुझाव की सराहना की जाएगी।

अद्यतन: उसी एसक्यूएल के साथ ब्रांड स्पैंकिंग नया दृश्य बनाया गया, इसे उसी विधि से डीएएल, उसी त्रुटि में जोड़ने के लिए चला गया।

उत्तर

0

मुझे नहीं पता कि इससे मदद मिलेगी, क्योंकि मुझे इसका एहसास करने के लिए पर्याप्त जानकारी नहीं है, लेकिन मुझे लगता है कि आंशिक वर्ग vw_BillingIssues.cs में वास्तव में अतिरिक्त क्षेत्र था। मैंने "vw_BillingIssues" शब्द के लिए समाधान-विस्तृत खोज की है और किसी भी सूची या संग्रह में अतिरिक्त फ़ील्ड जोड़ा है जो इसे याद कर रहा था (कहीं और कहीं और), समाधान और सफलता का पुनर्निर्माण किया! मैंने कहीं ध्यान दिया कि इस दृश्य की अंतर्निहित तालिकाओं का उल्लेख प्राथमिक कुंजी परिभाषित नहीं किया गया था, लेकिन मुझे याद नहीं आया कि मैंने इसे कहाँ देखा था।

2

आपके पास शायद दो समान नोड्स हैं: EntitySetMapping। आपको एक को हटा देना चाहिए और सब ठीक हो जाएगा। दृश्य के लिए सभी मैपिंग को हटाने का प्रयास करें और उन्हें दोबारा जोड़ें। यदि यह काम नहीं करता है तो मॉडल ब्राउज़र दृश्य और मॉडल/इकाई प्रकार के अंतर्गत देखने का प्रयास करें। ऐसी कुछ संस्थाएं हो सकती हैं जो पुरानी माइग्रेशन के दौरान छोड़ी गई थीं और जब आप एक ही कुंजी के साथ एक टेबल जोड़ने की कोशिश करते हैं तो आपकी त्रुटि होती है। उम्मीद है कि यह मदद करता है;]

+0

प्रतिक्रिया के लिए Thanx, लेकिन यह बात बहुत बड़ी है और कई डेवलपर्स द्वारा कई सालों में काम किया गया है। मैं उस पर भरोसा नहीं करता कि इसमें कुछ अतिरिक्त नहीं है। यह एक तालिका और दृश्य, हालांकि, केवल 1 पृष्ठ पर एक ग्रिडव्यू का समर्थन करने के लिए है, और कुछ भी इसे छूता नहीं है। मैं कोशिश कर रहा हूं – Darkloki

+0

मेरा संपादन जांचें;] – dlght

9

मेरे पास बिल्कुल वही समस्या थी। जैसा कि मैंने देखा, यह मुद्दा सबवर्सन के साथ .edmx फ़ाइलों को विलय करने के बाद दिखाई दिया। टेक्स्ट एडिटर में .edmx फ़ाइल को देखते हुए, मुझे एक डुप्लिकेट एंटिटीसेट मैपिंग एंट्री मिली। डुप्लिकेट मैन्युअल रूप से हटाने के बाद, समस्या हल हो गई थी! उम्मीद है कि यह

1

मुझे बिल्कुल वही समस्या थी, और ऊपर सेडेंबल के उत्तर में समाधान के लिए सुराग मिला - डुप्लिकेट EntitySetMapping प्रविष्टियां। समस्या यह थी: इसे 250+ टेबल के साथ लगभग 3 एमबी के ईडीएमएक्स में कैसे ढूंढें। समाधान (ए) ईडीएमएक्स की फाइलों पर "EntitySetMapping Name =" पर विजुअल स्टूडियो में "सभी खोजें" चलाएं। इसने 250+ प्रविष्टियों (अपेक्षित के रूप में) की एक सूची प्राप्त की, लेकिन किसी भी प्रकार के क्रम में जहां मैं डुप्लिकेट स्पॉट कर सकता था। तो (बी) सूची को नोटपैड ++ में काटकर चिपकाया, चाप को हटाने के लिए एक मैक्रो चलाया, केवल टैबलेट नाम छोड़कर, (सी) इस सूची को एक्सेल में काटकर चिपकाया, और इसे ए-जेड सॉर्ट किया। फिर (डी) सिर्फ डुप्लिकेट की तलाश में सूची को नजरअंदाज कर दिया। 8 डुप्लिकेट ईएसएम युक्त एक पूरा खंड मिला! उन्हें हटा दिया, ईडीएमएक्स को बचाया, विजुअल स्टूडियो में ईडीएमएक्स को फिर से लोड किया, फिर से "डेटाबेस से अद्यतन", और बिंगो चलाया।

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

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