2013-02-13 13 views
17

के बीच का अंतर MSDN से है:क्या DbContext और ObjectContext

यूनिट के-कार्य और भंडार पैटर्न का एक संयोजन का प्रतिनिधित्व करता है और साथ में परिवर्तन है कि उसके बाद वापस करने के लिए लिखा जाएगा एक डेटाबेस और समूह क्वेरी करने के लिए सक्षम बनाता है एक इकाई के रूप में स्टोर। DbContext अवधारणात्मक रूप से ObjectContext के समान है।

हालांकि मैं DbContext केवल डीबी से कनेक्शन और डीबी के खिलाफ काम करने वाले धागे की संख्या को संभालता हूं।

अब मुझे समझ में आता है कि इसमें ट्रैकिंग तंत्र है? मैंने सोचा कि यह ObjectContext में था।

तो उनके बीच अंतर क्या है (सादे अंग्रेजी में) क्या है?

उत्तर

21

डीबीकॉन्टेक्स्ट ऑब्जेक्ट कॉन्टेक्स्ट क्लास का हल्का संस्करण है, जिसे ऑब्जेक्ट कॉन्टेक्स्ट के शीर्ष पर लगभग सही रखा गया है (ऑब्जेक्ट कॉन्टेक्स्ट को केवल डीबीकॉन्टेक्स्ट से प्राप्त करने का एक तरीका भी है)। आईएमओ का उपयोग करना भी बहुत आसान है, और सीआरयूडी संचालन को एक सिंचन बनाता है।

बेहतर जानकारी के लिए, अंतर पर अधिक जानकारी के लिए Julie Lerman से बेहतर देखने के लिए कौन सा बेहतर है, जैसा कि ईएफ 4.1 में लाया गया था।

+0

जांच इस [लेख] (http:।//www.c-sharpcorner.com/UploadFile/ff2f08/objectcontext-vs-dbcontext/) और अधिक के लिए – stom

5

डीबीकॉन्टेक्स्ट ऑब्जेक्ट कॉन्टेक्स्ट की सबसे अधिक उपयोग की जाने वाली सुविधाओं का खुलासा करने वाला एक छोटा एपीआई है। कुछ मामलों में, उन सुविधाओं को डीबीकॉन्टेक्स्ट एपीआई में प्रतिबिंबित किया जाता है। अन्य मामलों में, एंटिटी फ्रेमवर्क टीम ने DbSet.Local जैसे खोज या गुण जैसे विधियों के साथ हमें प्रदान करके अधिक जटिल कोडिंग को सरल बना दिया है। लेकिन एक बड़ी एपीआई है जिसके नीचे आपको अभी भी पहुंच की आवश्यकता हो सकती है। उदाहरण के लिए, आप कक्षा के विरुद्ध जेनेरिक कोड लिखने के लिए मेटाडाटा वर्कस्पेस के साथ सीधे काम करना चाहते हैं क्योंकि वह एपीआई प्रतिबिंब की तुलना में मॉडल को अधिक कुशलता से पढ़ सकता है। इसके अतिरिक्त, मेटाडाटा वर्कस्पेस की तुलना में मेटाडेटा के बारे में अधिक जानकारी प्रदान करने में सक्षम है, उदाहरण के लिए, मुख्य गुणों के लिए प्रतिबिंब के साथ खोज सकते हैं। या आप एंटीटी एसक्यूएल, के माध्यम से प्रकट होने वाले डेटाबेस-विशिष्ट फ़ंक्शन का लाभ उठा सकते हैं, जिसे आप LINQ से Entities तक नहीं पहुंच सकते हैं। या आप पहले से ही एक आवेदन ObjectContext का उपयोग करके लिखा हो सकता है और आप ObjectContext कोड के सभी बदले बिना भावी अपडेट में DbContext लाभ उठाने के लिए चाहते हैं (प्रोग्रामिंग DbContext से संदर्भ)

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