entity framework - Relationship Mapping in EF4 code-only CTP (when using inheritance?) -


मैं EF4 w / code-first CTP सुविधा का उपयोग करते हुए एक सरल मिश्रित पैटर्न वाला इकाई मॉडल बना रहा हूँ:

< पूर्व> सार्वजनिक सार आंशिक वर्ग CacheEntity {[Key] सार्वजनिक स्ट्रिंग हश {get; सेट; } सार्वजनिक स्ट्रिंग निर्माता {प्राप्त करें; सेट; } सार्वजनिक int EntityType {get; सेट; } सार्वजनिक स्ट्रिंग नाम {get; सेट; } सार्वजनिक स्ट्रिंग पूर्ववर्ती {get; सेट; } सार्वजनिक दिनांकटाइमटाइम क्रिएट किया गया {get; सेट; } सार्वजनिक आभासी आइकलिंग & lt; कैशरेफरेंस & gt; संदर्भ {प्राप्त करें; सेट; }} सार्वजनिक आंशिक वर्ग CacheBlob: CacheEntity {सार्वजनिक बाइट [] सामग्री {get; सेट; }} सार्वजनिक आंशिक वर्ग कैश कलेक्शन: कैशइन्टीटी {सार्वजनिक वर्चुअल आइकलेंक & lt; कैशइन्टीटी & gt; बच्चे {प्राप्त करें; सेट; }} सार्वजनिक वर्ग CacheReference {सार्वजनिक स्ट्रिंग हैश {get; सेट; } [कुंजी] सार्वजनिक स्ट्रिंग संदर्भ {get; सेट; } सार्वजनिक आभासी CacheEntity Entity {get; सेट; }} पब्लिक क्लास कैशइन्टीटीज़: डीबीसीन्टेक्स {सार्वजनिक डीबीसेट & lt; कैशएन्टीटी & gt; संस्थाएं {प्राप्त करें; सेट; } सार्वजनिक DbSet & lt; CacheReference & gt; संदर्भ {प्राप्त करें; सेट; }}

इससे पहले कि मैं आदिम / संग्रह व्युत्पन्न वर्गों को विभाजित किया, यह सब अच्छी तरह से काम किया, लेकिन अब मुझे यह मिलता है:

  प्रिंसिपल अंत निर्धारित करने में असमर्थ 'कैश.डेटाएक्स। कैचेएन्टीटी_रेफरेंस' रिश्ते का एकाधिक जोड़ा संस्थाओं में एक ही प्राथमिक कुंजी हो सकती है  

मुझे लगा कि यह भ्रमित हो सकता है, इसलिए मैंने सोचा कि मैं इसे स्पष्ट रूप से डेटाअनोटेशन एट्रिब्यूट्स के बजाय धाराप्रवाह इंटरफ़ेस का इस्तेमाल कर रहा हूं। यह ठीक है कि मुझे लगता है कि रिश्ते को ठीक से परिभाषित करता है:

  सुरक्षित ओवरराइड शून्य OnModelCreating (Modelbuilder ModelBuilder) {modelBuilder.Entity & lt; CacheEntity & gt; ()। HasKey (ce = & gt; ce.Hash); मॉडलबिल्डर। एंटीटी & lt; कैशइन्टीटी & gt; ()। HasOptional (सीई = & gt; सीई। संदर्भ)। कई (); मॉडलबिल्डर। एंटीटी & lt; कैशरेफरेंस & gt; ()। हैके (सीई = & gt; सीई। रेफरेंस); मॉडलबिल्डर। एंटीटी & lt; CacheReference & gt; ()। HasRequired (cr = & gt; cr.Entity) .ऑप्टिकल (); }  

लेकिन मुझे गलत होना चाहिए, क्योंकि अब मुझे यह मिलता है:

  CacheEntities.CacheReferenceSet 'में संस्थाएं' कैशरेफरेंस_एन्टीटी 'रिश्ते में भाग लेती हैं I 0 संबंधित 'इकाई' पाया गया 1 'इकाई' की उम्मीद है  

धाराप्रवाह एपीआई उपज का उपयोग करने के कई अन्य तरीके अलग-अलग त्रुटियां हैं, लेकिन कुछ भी सफल नहीं है, इसलिए मैं आश्चर्य करने लगा हूँ कि क्या इन्हें विरासत का उपयोग करते हुए अलग तरीके से किया जाना है।

कोई सुराग, लिंक, विचार, मार्गदर्शन बहुत स्वागत होगा।

मैपह्राचार का उपयोग करने के लिए काम करता है मुझे:

  सुरक्षित ओवरराइड शून्य OnModelCreating (ModelBuilder बिल्डर) {बिल्डर.Entity & lt; CacheBlob & gt; ()। HasKey (b = & gt; बी। हैश) .MapHierarchy (); }  

एक उदाहरण के रूप में।

आगे संदर्भ:


Comments

Popular posts from this blog

Eclipse CDT variable colors in editor -

AJAX doesn't send POST query -

wpf - Custom Message Box Advice -