2009-05-20 12 views
6

व्यस्त नया ऐप बनाने में व्यस्त रहा, मूल रूप से मेरे पास डेटाटाइस, सर्विस लेयर और प्रेजेंटेशन लेयर है ... सभी बेहतरीन काम करते हैं लेकिन मैं ईएफ द्वारा लौटाई गई इकाई कक्षाओं का उपयोग कर रहा हूं। समस्या यह है कि मैं प्रेजेंटेशन लेयर पर पास करता हूं इसलिए मुझे प्रस्तुति परत में इकाई फ्रेमवर्क संदर्भ/डाटाकास जोड़ने की आवश्यकता है - अच्छा नहीं:भंडार पैटर्न का उपयोग कर इकाई फ्रेमवर्क के साथ उपयोग के लिए Automapper?

तो मेरा विचार निम्न था और कुछ मदद और पुष्टि की तलाश में था कि मैं नीचे सही लाइनों जा रहा ...

  1. ग्राहक की तरह सेवा परत में कक्षाओं का एक सेट बनाएं, आदेश आदि क्योंकि प्रस्तुति परत सेवा परत के लिए एक संदर्भ है ..

  2. जब किसी ग्राहक डाटाबेस में इकाई वापस आती है मैं इकाई वर्ग यानी ग्राहक को सेवा में वापस कर दूंगा मैं यहां मैपिंग करूँगा - मुझे यह भी यकीन नहीं है कि मुझे यह पसंद है?

  3. मैपिंग के लिए उपयोग किए जाने वाले इन "मानक वर्गों" के लिए सबसे अच्छी जगह कहां होगी, अगर मैं उन्हें सेवा परत में डालता हूं और डेटाकैस मैपिंग करता हूं तो यह डाटाकास> सेवा के रूप में एक परिपत्र संदर्भ बनाएगा और सेवा> dataaccess .. - यह सिर्फ एक ही रास्ता यानी सेवा होना चाहिए> dataaccess

मैं Automapper (http://www.codeplex.com/AutoMapper) इस का ख्याल रखना, मैं सही तर्ज पर कर रहा हूँ का उपयोग करने का सोच रहा था ??? किसी भी विचार या उदाहरणों की वास्तव में सराहना की गई ..

जैसा कि मैंने कहा है कि एकमात्र चीज यह है कि जब मैं डेटाकैस से सेवा परत (Iqueryable का उपयोग कर) से वापस आती हूं तो मुझे इन्हें इकाई वर्गों से दूर करने और मानक संग्रह कक्षाओं का उपयोग करने की आवश्यकता होती है ..

मुझे लगता है कि यह वह जगह है जहां मैं भ्रमित हो जाता हूं, मुझे लगता है कि यह इकाई वर्गों का उपयोग करके अच्छा नहीं है क्योंकि इसका मतलब है कि मुझे इकाई प्रस्तुतियों परत तक पहुंचने में सक्षम होने के लिए मेरी प्रस्तुति परत में इकाई ढांचे/डेटाकैस के संदर्भ की आवश्यकता है।

उत्तर

3

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

इसके अलावा, एफई v4 जो .NET 4.0 के साथ की वजह से है/विजुअल स्टूडियो 2010 समस्या क्षेत्रों के कई में राहत देने का एक बहुत लाना चाहिए - अपनी खुद की, सीधे Pocos (प्लेन ओल्ड CLR वस्तुओं) के लिए समर्थन, और एक महान कई अधिक। EF Design Blog देखें। ईएफ v4 के संबंध में, टीम ने हाल ही में कई बहुत रोचक, बहुत ही आशाजनक पोस्ट पोस्ट की हैं। मैं इसकी राह देख रहा हूं!

मार्क

0
  1. आप अगर आप अपने कोर/आम परियोजना में अपने इंटरफेस निकालने वेब परियोजना में एफई वस्तुओं का उपयोग करें और भंडार या सेवाओं से इंटरफ़ेस प्रकार लौटने के लिए, कि वेब परियोजना का उपयोग करता है सकते हैं।

    आंशिक वर्ग ग्राहक: ICustomer

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

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