2013-05-03 5 views
5

DbContext के लिए विवरण कहता है: "एक डीबीकॉन्टेक्स्ट उदाहरण यूनिट ऑफ वर्क एंड रिपोजिटरी पैटर्न के संयोजन का प्रतिनिधित्व करता है ..."। लेकिन कई डेवलपर अपनी खुद की भंडार और यूओडब्ल्यू बनाते हैं।डीबीकॉन्टेक्स्ट का उपयोग कर अपने स्वयं के यूओडब्ल्यू/रिपोजिटरी बनाम के बीच मतभेद सीधे

क्या मुझे सीधे DbContext और DbSet का उपयोग करना चाहिए या मेरे स्वयं के रेपॉजिटरीज़ होना चाहिए? क्या अंतर हैं।

कोई समस्या है, तो हम DbContext सीधे का उपयोग है? अगर मैं भविष्य में एमएस एसक्यूएल से ओरेकल में स्विच करता हूं तो कैसे?

उत्तर

5

का पालन करें MSDN

अन्य बार, आप अपने खुद के आवेदन विशेष यूनिट कार्य इंटरफ़ेस या वर्ग है कि आपके हठ उपकरण से काम के भीतर यूनिट लिपट लिखने के लिए कर सकते हैं। आप इसे कई कारणों से कर सकते हैं। आप आवेदन विशेष प्रवेश, अनुरेखण, या त्रुटि लेनदेन प्रबंधन के लिए से निपटने जोड़ने के लिए चाहते हो सकता है। शायद आप आवेदन के बाकी हिस्सों से अपने हठ टूलींग की बारीकियों को संपुटित करना चाहते हैं। आप बाद में दृढ़ता प्रौद्योगिकियों को स्वैप करने के लिए को आसान बनाने के लिए यह अतिरिक्त encapsulation चाहते हैं। या आप अपने सिस्टम में टेस्टेबिलिटी को बढ़ावा देना चाहेंगे। कार्य का बिल्ट-इन यूनिट के कई आम हठ उपकरणों से कार्यान्वयन स्वचालित इकाई परीक्षण परिदृश्यों में साथ निपटने के लिए मुश्किल हो जाता है।

अपने प्रश्नों के वापस आ जाओ।

मैं सीधे DbContext और DbSet का उपयोग करना चाहिए या वहां अपनी स्वयं की डेटा संग्रह स्थान होना चाहिए?

वास्तव में, वहाँ कोई समस्या नहीं है जब आप अपने खजाने में DbContext और DbSet डाल है। हम खुद से पूछेंगे कि हम अधिक आसान परीक्षण करना चाहते हैं। अगर हम सभी ढांचे का परीक्षण करना चाहते हैं तो हमें DbContext और DbSet का उपयोग सीधे अपने Repositories में नहीं करना चाहिए। हम इंटरफ़ेस IDbContextFactory जो DbContext, बस मेरी दो सेंट प्रदान करने के लिए उपयोग करें का उपयोग करना चाहिए।

भंडार के बारे में कई विचारों की आपकी सहायता के लिए आप रिपोजिटरी और DbContext के बीच विकल्पों पर विचार करने के लिए नीचे दिए गए लिंक का संदर्भ ले सकते हैं।

http://huyrua.wordpress.com/2010/07/13/entity-framework-4-poco-repository-and-specification-pattern/

कोई समस्या है, तो हम DbContext सीधे का उपयोग है?

नहीं, यदि आप सीधे DbContext का उपयोग करते हैं तो कोई समस्या नहीं है। लेकिन यह कई व्यवसायिक नियमों और कई प्रकार के मुद्दों को गड़बड़ कर देगा क्योंकि डेटाबेस को केंद्रीकृत करना, परीक्षण करना मुश्किल है और डिजाइन सिद्धांत में चिंता से अलग है।

अगर मैं भविष्य में एमएस एसक्यूएल से ओरेकल में स्विच करता हूं तो कैसे?यदि आप भविष्य में एमएस एसक्यूएल और Oracle के बीच स्विच

वास्तव में, वहाँ कोई समस्या नहीं है। एंटिटी फ्रेमवर्क के DbContext का उपयोग करते समय आप केवल डेटा प्रदाता को नीचे दिए गए लिंक का पालन करते हैं।

http://www.devart.com/news/2008/directs475.html

या MS Entity Framework Oracle Provider

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