2011-08-25 14 views
12

मैंने अपनी परियोजनाओं में एक ओआरएम के रूप में एंटीटीफ्रेमवर्क का उपयोग किया है और मुझे इस तकनीक का उपयोग करने में कोई समस्या नहीं है। मैंने सुना है EntityFramework एक प्रॉक्सी बनाता है। मैं जानना चाहता हूं कि इस ओआरएम ने क्या प्रॉक्सी बनाया है? यह क्या करता है? और, जब ईएफ इसे बनाता है? दूसरे शब्दों में, ओआरएम विषयों में अक्सर "प्रॉक्सी" शब्द का अर्थ क्या होता है।EntityFramework में प्रॉक्सी अर्थ क्या है?

कोई भी मददगार सहायक होगी।

अग्रिम में धन्यवाद।

+1

एफई हमेशा प्रॉक्सी नहीं बनाता है। आप इसे बंद कर सकते हैं, जो आप लोड करना चाहते हैं, या यदि आप इकाइयों को क्रमबद्ध करते हैं (उदाहरण के लिए डब्ल्यूसीएफ में उपयोग के लिए)। – Kit

+0

मैंने जोनास द्वारा प्रदान किया गया स्वीकार किया, लेकिन मैं सभी विशेषज्ञों से अधिक सुनना चाहता हूं। – saber

उत्तर

23

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

प्रॉक्सी आमतौर पर तब बनाई जाती है जब आपके पास दो इकाइयों के बीच संबंध संपत्ति होती है जो आलसी लोड हो जाती है। जैसे जब आप user.Address संपत्ति तक पहुंचते हैं, तो वास्तव में क्या भेजा जाता है पता पता प्रॉक्सी ऑब्जेक्ट होता है। केवल उस वस्तु की संपत्ति तक पहुंचने के बाद (उदा। user.Address.StreetName) पता ऑब्जेक्ट उचित लोड हो जाएगा।

+0

धन्यवाद जोनास। – saber

3

इस ट्यूटोरियल में प्रॉक्सी वर्ग के साथ कार्य करना देखें: http://www.asp.net/entity-framework/tutorials/advanced-entity-framework-scenarios-for-an-mvc-web-application

+0

मुझे पता है कि अक्सर एसओ उत्तरों में लिंक फेंक रहे हैं, लेकिन यह एक * बहुत * उपयोगी ट्यूटोरियल है। – batpox

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