2010-11-12 10 views
5

मेरे पास एक क्लाइंट एप्लिकेशन (डब्ल्यूपीएफ, सी #, .net4) है जो SQLITE प्रदाता के माध्यम से जुड़े पॉको इकाई मॉडल का उपयोग करता है। इसलिए मैं इस प्रोजेक्ट से एएसपीनेट प्रोजेक्ट (एमएसएसक्यूएल प्रदाता के साथ) में एक ही संस्थाएं बनाना चाहता हूं, जो कि मेरे क्लाइंट एप्लिकेशन में उपयोग की जाने वाली वही इकाइयों का उपयोग करने के लिए है। मैं वेब सेवाओं का उपयोग कर एक ही पॉको मॉडल का उपयोग कर अपने क्लाइंट ऐप (एसक्यूएलआईटी) और वेब सर्वर (एमएसएसक्यूएल) के बीच कुछ प्रकार की प्रतिकृति कार्यक्षमता बनाना चाहता हूं।विभिन्न डेटा प्रदाताओं के साथ एक पीओसीओ मॉडल

तो मेरे पास edmx फ़ाइलों के लिए अलग-अलग कनेक्शन स्ट्रिंग के साथ दोनों परियोजनाओं में मेरे इकाइयों के मॉडल का संदर्भ है। और इस मामले (क्योंकि edmx SQLite प्रदाता के लिए संकलित किया गया था) जब मैं mssql डेटा प्रदाता का उपयोग करने की कोशिश कर रहा हूँ में मैं एक अपवाद प्राप्त करें:

System.Data.SQliteConnection

को System.Data.SqlConnection डाली करने में असमर्थ

तो मेरा सवाल यह है कि एक इकाई मॉडल में विभिन्न डेटा प्रदाताओं का उपयोग करना संभव है? विभिन्न परियोजनाओं में एक ही मॉडल का उपयोग करने का सबसे अच्छा तरीका क्या है?

उत्तर

1

यदि मैं आपके प्रश्न को सही ढंग से समझता हूं, तो यदि आप कई डेटाबेस कार्यान्वयन का समर्थन करने के लिए अपने ईएफ मॉडल की तलाश में हैं तो यह बॉक्स से बाहर संभव नहीं है। ईएफ द्वारा स्वत: जेनरेट की गई एसएसडीएल फ़ाइल में प्रदाता विशिष्ट मेटाडेटा होगा और इसलिए आप उपयोग किए जा रहे विभिन्न डेटाबेस कार्यान्वयन से इसकी स्वतंत्रता को प्रतिबंधित कर देंगे।

कुछ articles हैं जो इसके आसपास के तरीके प्रदान करते हैं, लेकिन इसके लिए प्रत्येक प्रदाता के लिए आपके मॉडल की एक अलग प्रति और प्रदाता विवरण के साथ जेनरेट किए गए एक्सएमएल को हैकिंग की आवश्यकता होती है।

+0

cpedros, धन्यवाद - यह वही था जो मुझे चाहिए :), अब मुझे दोनों प्रदाताओं के लिए एक मॉडल मिला है – DolceVita

0

पीओसीओ के साथ यह संभव होना चाहिए। जब तक वेब सेवा xml या json डेटा गुजर रही है, तब तक यह किसी विशिष्ट डेटा कनेक्टर कार्यान्वयन से बाध्य नहीं होगी। मुझे यकीन नहीं है कि यह बाइनरी मोड में क्या होगा - संभवतः डेटा मॉडल के लिए कुछ लिंक है। क्या आपको यह त्रुटि WPF ऐप से या वेब सेवा से प्राप्त हो रही है? ऐसा लगता है कि आप इस क्लाइंट ऐप के अंदर अभी भी परीक्षण करने की कोशिश कर रहे हैं। क्या आपने अभी तक वेब सेवा को लागू करने का प्रयास किया है?

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