2010-02-27 24 views
5

का उपयोग करके एक इकाई मॉडल से कनेक्ट करें मैं एक असेंबली से एंटीटी डेटा मॉडल लोड करने और उनके खिलाफ पूछताछ लोड करने के लिए एक छोटी उपयोगिता लिख ​​रहा हूं।प्रतिबिंब

मैं एक व्युत्पन्न ObjectContext लोड करने के लिए प्रतिबिंब का उपयोग कर की कोशिश की है, लेकिन MarshalByRefObject से ObjectContext प्राप्त नहीं होता है तो मैं Activator.CreateInstance() साथ निर्माता के लिए मानकों को पारित नहीं कर सकते हैं (अपवाद मैं के अनुसार।)

क्या प्रतिबिंब का उपयोग करके बाह्य असेंबली में परिभाषित और संग्रहीत एक इकाई मॉडल लोड करना संभव है, ईडीएम को "देर से बांधें", और यदि आप एक वैध कनेक्शन स्ट्रिंग प्रदान करते हैं तो इसके खिलाफ क्वेरी करें?

+0

आप विधानसभाओं के लिए एक सहायक वर्ग को जोड़ने नहीं कर सकते? –

+0

मैं असेंबली की किसी भी विशेष तैयारी के बिना किसी भी असेंबली में ईडीएम में हुक करने में सक्षम होना पसंद करूंगा। –

उत्तर

5

मेरा मानना ​​है कि ObjectContext.Metadataworkspace.LoadFromAssembly() आपके लिए क्या देख रहा है:

http://msdn.microsoft.com/en-us/library/bb495513.aspx

+0

यह बिल्कुल है! कुछ अन्य प्रतिबिंब चाल के साथ मैं ईडीएम के साथ एक असेंबली से कनेक्ट करने में सक्षम हूं, डेटाबेस को इंगित करता हूं, और ईडीएम में इकाइयों के बारे में कुछ भी जानने के बिना पूछता हूं! धन्यवाद! –

+0

धन्यवाद, क्या आप एक सामान्य EntityFramework प्रबंधन स्टूडियो या कुछ कर रहे हैं? – jfar

0

ऑब्जेक्ट कॉन्टेक्स्ट से प्राप्त ईडीएम मॉडल में कनेक्शन स्ट्रिंग नाम है जो इसे अपने स्वयं के डिफ़ॉल्ट कन्स्ट्रक्टर से बेस कन्स्ट्रक्टर तक भेजता है। नीचे की तरह

public const string ConnectionString = "name=My_Entities"; 
    public const string ContainerName = "My_Entities"; 

    #region Constructors 

    public My_Entities() 
     : base(ConnectionString, ContainerName) 
    { 
     Initialize(); 
    } 

    #endregion 

आप हमेशा ऑब्जेक्ट कॉन्टेक्स्ट.कनेक्शन के माध्यम से कनेक्शन विवरण बदल सकते हैं।

+0

यह एक पैरामीटर रहित कन्स्ट्रक्टर है, लेकिन इसके लिए कनेक्शन स्ट्रिंग वाले उस नाम के साथ कॉन्फ़िगर फ़ाइल प्रविष्टि की आवश्यकता होती है। मुझे एक स्ट्रिंग या एक जाने-जाने वाली EntityConnection में पास करने में सक्षम होना चाहिए, जिसे मैं CreateInstance का उपयोग नहीं कर सकता। –