2010-03-24 9 views
5

के साथ आंतरिक कक्षाएं मैं अपने डेटा एक्सेस लेयर के निर्माण के लिए इकाई फ्रेमवर्क का उपयोग कर रहा हूं और मैं चाहता हूं कि मेरी सभी कक्षाएं internal हों।एडीओ.NET इकाई फ्रेमवर्क

मुझे पता है कि इसे प्रत्येक वर्ग के लिए मैन्युअल रूप से डिजाइनर में असाइन करना संभव है।

अद्यतन मैंने पाया कि मेरी प्रारंभिक वक्तव्य

लेकिन लगता है कि यह भी हर कक्षा में प्रत्येक एकल संपत्ति के लिए आंतरिक संशोधक सेट करने के लिए की आवश्यकता है! मेरे पास लगभग 30+ इकाइयां हैं और यह करने के लिए एक बड़ा काम होगा।

गलत था। मुझे याद आ रहा था कि जब मैंने Entity Type पर पहुंच सेट की है तो मुझे Entity Set पर भी उचित पहुंच सेट करने की आवश्यकता है।

क्या आप किसी भी विचार को पूरे मॉडल के लिए 'डिफ़ॉल्ट पहुंच' सेट करने के बारे में जानते हैं?

उत्तर

0

आप वास्तव में क्या हासिल करने की कोशिश कर रहे हैं? यदि आपके मॉडल में प्रत्येक वर्ग को आंतरिक घोषित किया गया था और इसकी सभी संपत्तियों को आंतरिक घोषित किया गया था, तो यह आपके मॉडल को बेकार बना देगा। कुछ इसे एक्सेस करने और इसके साथ काम करने की आवश्यकता होगी ...

क्या आप मॉडल के विशिष्ट उपयोग को रोकने की कोशिश कर रहे हैं? ऐसा करने के बेहतर तरीके हैं।

अद्यतन: ऐसा लगता है कि वीएस -2010 टी 4 टेम्पलेटिंग के माध्यम से एक आंतरिक ऑब्जेक्ट कॉन्टेक्स्ट को अनुमति देगा। यहां एक नज़र डालें: http://blogs.msdn.com/efdesign/archive/2009/01/22/customizing-entity-classes-with-t4.aspx

+0

इस 'डेटा एक्सेस' लाइब्रेरी से डिज़ाइन कक्षाओं द्वारा केवल किसी अन्य विशेष 'मॉडल' असेंबली द्वारा उपयोग किया जाना चाहिए। मेरे पास 'DataAccess' में 'InternalsVisibleTo' विशेषता होगी, इसलिए केवल' मॉडल' इसकी कक्षाओं का उपयोग कर सकता है। – Regent

+0

यदि आपको उन्हें आंतरिक चिह्नित करने की आवश्यकता है, तो आपको डिज़ाइनर फ़ाइल को मैन्युअल रूप से संशोधित करना होगा। यदि आप मॉडल कभी नहीं बदलते हैं, तो यह वास्तव में कोई समस्या नहीं है ... लेकिन यदि यह बदलता है, तो आप ऐसी स्थिति में हो सकते हैं जहां डिज़ाइनर फ़ाइल (जो ऑटो जेनरेट की गई हो) आपके परिवर्तनों को ओवरराइट करती है। यदि आप 2010 का उपयोग कर सकते हैं, तो ऐसा लगता है कि टी 4 टेम्पलेट्स आपको जो हासिल कर रहे हैं उसे प्राप्त करने की अनुमति देता है (http://blogs.msdn.com/efdesign/archive/2009/01/22/customizing-entity-classes-with-t4 .aspx) – ctorx

+0

आपका परिप्रेक्ष्य सीमित प्रतीत होता है। उन पुस्तकालयों से डेटा-लेयर ऑब्जेक्ट्स को सारण/छिपाना असामान्य नहीं है जो उन्हें होस्ट करने वाली लाइब्रेरी का उपयोग कर रहे हैं। शायद वह अलग-अलग पहुंच का खुलासा करता है। हालांकि, उसे जाने के लिए एक लिंक भी प्रदान करने के लिए धन्यवाद। –

1

असल में यदि आपकी कक्षा आंतरिक है, तो इससे कोई फर्क नहीं पड़ता कि गुण सार्वजनिक हैं - कक्षा स्वयं ही आपके प्रोजेक्ट के बाहर दिखाई नहीं दे रही है, इसलिए गुणों को कभी भी एक्सेस नहीं किया जा सकता है (जब तक प्रतिबिंब के माध्यम से नहीं)

+0

सच है, लेकिन जैसा कि मैंने पाया कि मेरी समस्या इसलिए थी क्योंकि मुझे याद आया कि अगर मैंने 'इकाई प्रकार' पर आंतरिक दृश्यता निर्धारित की है तो मुझे भी 'इकाई सेट' पर कम से कम आंतरिक सेट करने की आवश्यकता है। – Regent

+0

लेकिन दुर्भाग्य से मुझे 'EntityContainer' स्तर पर दृश्यता सेट करने का तरीका नहीं मिला है। – Regent

+0

कोडफर्स्ट दृष्टिकोण का उपयोग करके, आपके मॉडल पर पूर्ण नियंत्रण है। –

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