2011-03-21 22 views
5

मेरे पास अपनी मूल कक्षा में एक अलग असेंबली में उप-वर्ग है। माता-पिता ईएफ कोड फर्स्ट के लिए उपयोग की जाने वाली एक पीओसीओ कक्षा है।इकाई फ्रेमवर्क कोड प्रथम और एकाधिक असेंबली

जब मैं डेटाबेस से विरासत में मिला वर्ग का एक उदाहरण जोड़ने की कोशिश मैं InvalidOperationException:"ऑब्जेक्ट मानचित्रण पहचान 'Foo.Bar.MyInheritedClass' के साथ प्रकार के लिए नहीं पाया जा सका।"

यह सब ठीक है अगर उप वर्ग बेस क्लास के समान असेंबली में है।

नियमित एफई में solution seems to beObjectContext.MetadataWorkspace.LoadFromAssembly (विधानसभा) के लिए एक कॉल। लेकिन मैं यह नहीं समझ सकता कि यह कोड फर्स्ट से कैसे संबंधित है।

कोई सलाह?

मैं इकाई फ्रेमवर्क 4.1 आरसी का उपयोग कर रहा हूं।

+1

आप अभी भी उस फ़ंक्शन को क्यों नहीं बुला सकते? मैंने actuaqlly चेक नहीं किया है, लेकिन कुछ त्वरित खोज के आधार पर आप 'dbContext.MetadatWorkspace' का उपयोग कर अपने 'डीबीकॉन्टेक्स्ट' से' मेटाडाटा वर्कस्पेस 'तक पहुंचने में सक्षम होना चाहिए। क्या यह काम नहीं करता है? –

+0

हां, आप DbContext को IObjectContextAdapter पर डालें और इसके अंतर्निहित ऑब्जेक्ट कॉन्टेक्स्ट को पुनर्प्राप्त कर सकते हैं (देखें: http://weblogs.asp.net/jgalloway/archive/2011/01/21/fix-wcf-data-service-with-entity-framework -code-पहले dbcontext-नहीं करता-टी स्वीकार-updates.aspx)। –

+0

जिसने मुझे मेटाडाटा वर्कस्पेस.लोडोड्रोएस्क्रिप्ट्स() की कोशिश करने की अनुमति दी लेकिन यह मेरी समस्या को ठीक नहीं किया :( –

उत्तर

3

मैंने पहली असेंबली के डीबीकॉन्टेक्स्ट से विरासत में इसे प्राप्त करके हल किया, एक व्युत्पन्न वर्ग के लिए एक डीबीसेट <> और उसके बाद व्युत्पन्न प्रकार के नए उदाहरण जोड़ना।

MSDN मंच पर

प्रकाशित किया गया था कोड here.

+0

यह एक बकवास समाधान है –

2

मैं जानता हूँ कि इस पोस्ट थोड़ा पुराना है, लेकिन मैं इस का उपयोग करते हुए @ निर्माता अंदर डेव खुलने और पूरा करने के लिए कर रहा था:

public Context() { 
    ((IObjectContextAdapter)this).ObjectContext.MetadataWorkspace.LoadFromAssembly(
     System.Reflection.Assembly.GetAssembly(
      typeof(--[Inherited DbContext]--))); 
} 
1

मैं काफी नया हूँ ईएफ (एंटिटी फ्रेमवर्क 4) के लिए और जब मैंने मॉडल में बदलाव किए तो मुझे वही अपवाद मिला।

मेरी समस्या यह साबित हुई कि मुझे नहीं पता था कि ईएफ को सभी नेविगेशन गुणों पर सभी नामों की आवश्यकता है, न केवल उनके प्रकार से सहमत हैं। उदाहरण के लिए यदि foo नामक एक नेविगेशन प्रॉपर्टी है, तो उसी नाम के साथ संबंधित कक्षा में एक घोषित चर होना आवश्यक है।

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