asp.net mvc 4 - Error in many-to-many relationship using Fluent API in Entity Framework 6 one model is self referencing -
वर्ग
मॉडल स्वयं संदर्भित है
सार्वजनिक वर्ग श्रेणी { [कुंजी] सार्वजनिक पूर्णांक श्रेणीआईआईडी {प्राप्त; सेट; } सार्वजनिक स्ट्रिंग नाम {get; सेट; } सार्वजनिक int? ParentID {प्राप्त करें; सेट; } सार्वजनिक श्रेणी कैट {प्राप्त; सेट; } सार्वजनिक आइकलिंग & lt; श्रेणी & gt; श्रेणियाँ {प्राप्त करें; सेट; } सार्वजनिक आइकलेंच & lt; बिज़नेसडिटर & gt; बीडी विवरण {प्राप्त करें; सेट; }}
और BusinessDetail
जैसा है
सार्वजनिक वर्ग BusinessDetail {[Key] सार्वजनिक int आईडी {get; सेट; } [आवश्यक] [प्रदर्शन (नाम = "व्यावसायिक नाम")] सार्वजनिक स्ट्रिंग व्यवसायनाम {get; सेट; } सार्वजनिक स्ट्रिंग पता {get; सेट; } [प्रदर्शन (नाम = "संपर्क")] सार्वजनिक स्ट्रिंग संपर्क डिटेल्स (प्राप्त करें; सेट; } / / सार्वजनिक int classID {get; सेट; } // सार्वजनिक श्रेणी श्रेणी {प्राप्त करें; सेट; } सार्वजनिक int? स्थान आईडी {प्राप्त करें; सेट; } सार्वजनिक स्थान स्थान {प्राप्त करें; सेट; } [प्रदर्शित करें (नाम = "वेबसाइट पता")] सार्वजनिक स्ट्रिंग वेबसाइट_एडरेशन {प्राप्त करें; सेट; } [प्रदर्शन (नाम = "सत्यापित है")] सार्वजनिक बाल आईएसओ सत्यापित {प्राप्त; सेट; } [आवश्यक] [प्रदर्शन (नाम = "जोड़ा गया")] सार्वजनिक स्ट्रिंग Add_By {get; सेट; } [आवश्यक] [प्रदर्शन (नाम = "जोड़ा गया दिनांक")] [डेटाटाइप (डेटाटाइप.डेटाइम)] सार्वजनिक तिथि समय जोड़ा गयाडेटा {प्राप्त; सेट; } [प्रदर्शन (नाम = "फीचर्ड" है)] सार्वजनिक बाल आईएसआईफ़ेचरड {प्राप्त; सेट; } सार्वजनिक स्ट्रिंग अक्षांश {प्राप्त करें; सेट; } सार्वजनिक स्ट्रिंग सत्यापित करना {प्राप्त करें; सेट; } सार्वजनिक स्ट्रिंग देशांतर {get; सेट; } सार्वजनिक आइकलिंग & lt; श्रेणी & gt; श्रेणियाँ {प्राप्त करें; सेट; }}
फ्लुअन्ट एपीआई के उपयोग से कई-से-कई रिश्ते बनाते समय
modelbuilder.Entity & lt; BusinessDetail & gt; () .HasMany (c = & gt; सी। श्रेणियां)। कई (i = & gt; i.BD विवरण)। मैप (टी = & gt; टी। एमएपीएलईफ़्के ("आईडी")। एमएपीआरआईकेके ("श्रेणीआईडी")। टूटेबल ("बिज़नेस क्रेडेंशियल्स"));
मुझे यह त्रुटि मिलती है
संदर्भित तालिका में कोई प्राथमिक या उम्मीदवार कुंजी नहीं है 'dbo.BusinessDetails' जो विदेश में संदर्भित स्तंभ सूची से मेल खाता है कुंजी 'FK_dbo.BusinessCategories_dbo.BusinessDetails_ID'।
मुझे इस त्रुटि पर सहायता चाहिए।
मैं आपका सटीक उदाहरण तैयार करने की कोशिश करूँगा, लेकिन नीचे दिए गए कोड को किसी भी विन्यास के बिना कार्य करता है:
संपादित करें: मैंने कोड को ऑनमोलोड क्रिएटिंग से जोड़ दिया और संपत्ति नामों को आपके परीक्षा, लेकिन यह सब काम करता रहता है आप हालांकि महसूस करते हैं, कि माता-पिता श्रेणी
के लिए जनक संपत्ति को विदेशी कुंजी के रूप में नहीं देखा जाता है, लेकिन यह ईएफ आपके लिए एक Cat_CategoryId
विदेशी कुंजी बनाएगा? मैं अपने कोड का उपयोग करके स्क्रैच से शुरू करने की सलाह देता हूं और मौजूदा कोड की ओर कदम से कदम उठाता हूं।
सिस्टम का उपयोग कर; System.Collections का उपयोग कर; System.Collections.Generic का उपयोग कर; System.Data का उपयोग कर; System.Diagnostics का उपयोग कर; System.Data.Entity का उपयोग कर; सार्वजनिक श्रेणी श्रेणीबद्धता: डीबीसीन्टेक्स {सार्वजनिक डीबीसेट & lt; श्रेणी & gt; श्रेणियाँ {प्राप्त करें; सेट; } सुरक्षित ओवरराइड शून्य OnModelCreating (DbModelbuilder modelBuilder) {// बाद में भरें। }} सार्वजनिक वर्ग श्रेणी {सार्वजनिक श्रेणी} (बच्चे = नई सूची & lt; श्रेणी & gt; (); विवरण = नई सूची & lt; BussinesDetail & gt; (); } सार्वजनिक इन्ट आईडी {प्राप्त; सेट; } सार्वजनिक स्ट्रिंग नाम {get; सेट; } सार्वजनिक int? ParentId {प्राप्त करें; सेट; } सार्वजनिक आभासी वर्ग अभिभावक {प्राप्त; सेट; } सार्वजनिक आभासी आइकलिंग & lt; श्रेणी & gt; बच्चे {प्राप्त करें; सेट; } सार्वजनिक आभासी आइकलिंग & lt; BussinesDetail & gt; विवरण {प्राप्त करें; सेट; }} सार्वजनिक वर्ग BussinesDetail {सार्वजनिक इन्ट आईडी (प्राप्त करें; सेट; } सार्वजनिक स्ट्रिंग BussinesName {get; सेट; } सार्वजनिक आभासी आइकलिंग & lt; श्रेणी & gt; श्रेणियाँ {प्राप्त करें; सेट; }} सिस्टम का उपयोग कर; System.Collections का उपयोग कर; System.Collections.Generic का उपयोग कर; System.Data का उपयोग कर; System.Diagnostics का उपयोग कर; स्थैतिक वर्ग Module1 {सार्वजनिक स्थैतिक शून्य मुख्य () (का उपयोग करके (संदर्भ = नया श्रेणी कंटैक्स ()) {var newCat = context.Categories.Add (नई श्रेणी {नाम = "कैटऑन"}); context.SaveChanges (); NewCat = context.Categories.ingle; Console.WriteLine (newCat.Name); Console.ReadLine (); }}}
Comments
Post a Comment