2011-08-10 16 views
5

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

डीबी ए मैं एक ईडीएमएक्स डेटाबेस जेनरेट मॉडल का उपयोग कर रहा हूं ताकि यह ऑब्जेक्ट कॉन्टेक्स्ट का व्युत्पन्न उपयोग कर सके। डीबी बी मैं कोड उत्पन्न करना चाहता हूं। इसलिए मैं संकुल प्रबंधक के माध्यम से EntityFramework 4.1 को स्थापित करके कोड/मॉडल का पहला दृष्टिकोण उपयोग करता हूं।

टेस्ट विधि RoutIT.Irma.Import.Service.Test.ImportIrma2ProductTests.ImportProducts अपवाद दिए:: तो डीबी बी एक DbContext व्युत्पन्न

जब मैं डीबी एक डीबी बी को यह से जानकारी स्टोर करने की कोशिश का कहना है का उपयोग करता है सिस्टम .rgumentException: 'डीबी ए के ईडीएमएक्स मॉडल में कुछ इकाई' के लिए वैचारिक मॉडल प्रकार नहीं मिला

डीबी बी की व्युत्पन्न डीबीकॉन्टेक्स्ट की डीबीसेट संपत्ति में डीबी बी इकाई जोड़ते समय यह वास्तव में ऐसा करता है। तो कोड

तरह
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) 
{ 
      foreach (FirstPVC pvc in pvcs) 
      { 
       this._irmaImport.FirstPVCs.Add(pvc); <-- 
       this._irmaImport.SaveChanges(); 
      } 
      scope.Complete(); 
     } 
} 

यह ऊपर तीर से चिह्नित कोड में बिंदु पर होता है ("< -")

FirstPVC तीर के बिंदु पर अभी तक एक डीबी बी संपत्ति है यह डीबी बी के संदर्भ से संबंधित एक इकाई के लिए एक वैचारिक मॉडल नहीं होने के बारे में शिकायतें।

यह अजीब बात है क्योंकि मैं डीबी बी इकाई को डीबी बी संदर्भ में स्टोर करने का प्रयास करता हूं। इसे डीबी ए

इकाई के बारे में क्यों ध्यान रखना चाहिए सभी संदर्भ एक ही प्रोजेक्ट में निहित हैं। लेकिन डीबी बी के व्युत्पन्न डीबीकॉन्टेक्स्ट को केवल अपने स्वयं के डीबीसेट <> गुणों के बारे में जानकारी है, अचानक डीबीएसईटी <> में कुछ जोड़ने की कोशिश करते समय यह संपत्ति मुझे बोल्ड में त्रुटि देता है।

कोई भी जानता है कि ऐसा क्यों होता है? DbContext को अन्य संदर्भ की इकाई के बारे में क्यों विशेष रूप से ऑब्जेक्ट कॉन्टेक्स्ट व्युत्पन्न कक्षा में से एक होना चाहिए।

Perhapse यह इकाई इस बारे में शिकायत कर रहा है नोट करने के लिए उपयोगी है लगता है कि इस

[EdmEntityTypeAttribute(NamespaceName="Irma2Model", Name="AccessProvider")] 
[Serializable()] 
[DataContractAttribute(IsReference=true)] 
public partial class AccessProvider : EntityObject 
{ 
    /*****...... ******/ 
} 
+1

मुझे लगता है कि मुझे एक ही समस्या है। मेरे पास दो डीबी-पहले ईडीएमएक्स एक ही डीबी से अलग-अलग टेबल मैपिंग कर रहे थे और अब मैंने उनमें से एक को नए ईएफ 4.1 डीबीकॉन्टेक्स्ट/पीओसीओ मॉडल में बदल दिया है। फिर भी जब मैं बाद में कोशिश करता हूं और उपयोग करता हूं, तो मैं अन्य EDMX में किसी तालिका के लिए अनुपलब्ध मॉडल के बारे में त्रुटि प्राप्त करें। शायद यह उत्तर प्रासंगिक है?: http://stackoverflow.com/questions/3521497/how-does-ms-entity-framework-map-from-the-conceptual-model-to-clr-types। नोट मुझे लगता है कि आपके पोस्ट में एक टाइपो है "यह डीबी बी के संदर्भ से संबंधित एक इकाई के लिए एक वैचारिक मॉडल नहीं होने के बारे में शिकायत करता है", आपका मतलब डीबी ए सही है? – zeroid

+1

http://stackoverflow.com/questions/6899567/mixing-model-irst-and-code- यह भी पहले। कोई जवाब नहीं – zeroid

उत्तर

6

एक जवाब मिला, जैसे एक सा इसकी नहीं है कि तुम क्या हालांकि सुनना चाहते हैं:

http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/d2a07542-cb33-48ba-86ed-4fdc70fb3f1a

"अगर आप ईडीएमएक्स फ़ाइल के लिए डिफ़ॉल्ट कोड पीढ़ी का उपयोग कर रहे हैं, तो जेनरेट किए गए वर्गों में ईएफ को प्रत्येक इकाई प्रकार के लिए किस वर्ग का उपयोग करने में मदद करने के लिए विशेषताओं की एक श्रृंखला होती है। ईएफ वर्तमान में एक प्रतिबंध है कि पीओसीओ कक्षाओं को गधे से लोड नहीं किया जा सकता है गले लगाओ कि ईएफ विशेषताओं के साथ कक्षाएं शामिल हैं। (संक्षिप्त उत्तर नहीं है, आपकी कक्षाओं को अलग-अलग परियोजनाओं में होना चाहिए)।

यह कुछ हद तक एक कृत्रिम प्रतिबंध और कुछ हम महसूस करते हैं कि दर्दनाक है और कोशिश करते हैं और भविष्य में निकाल देंगे है। "

तो वैकल्पिक हल दो अलग-अलग विधानसभाओं में कक्षाएं विभाजित करने के लिए किया जाएगा।

+1

इस पर आग में कूदने के लिए धन्यवाद। आपने बस मुझे कुछ घंटों बचाया। मैं एडीएमएक्स कक्षाओं को किसी भी तरह से अलग विधानसभा में अलग करना चाहता था। आपको आश्चर्य होगा कि ईएफ के साथ कवर के तहत किस तरह का ओवरहेड बनाया जा रहा है। गंभीर दौर में अगले दौर के बारे में सोचने के बारे में सोच! – drogon

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