2012-09-10 24 views
10

मैं विजुअल स्टूडियो 2010 में एमवीसी 3, सी # 4.0 और इकाई फ्रेमवर्क का उपयोग कर रहा हूं। मैं डेटाबेस से अपनी edmx और design.cs फ़ाइलों को उत्पन्न कर रहा हूं। मैं फिर अपने एनएलयर संरचना के हिस्से के रूप में Designer.cs फ़ाइल में इकाइयों से इंटरफेस उत्पन्न कर रहा हूं।इकाई फ्रेमवर्क डेटाबेस से उत्पन्न इंटरफेस पहले ऑटो-जेनरेट कोड

मूल कोड

public partial class DataEntrySummary : EntityObject 

जो तब हो जाता है

public partial class DataEntrySummary : EntityObject, Mb.Interface.IDataEntrySummary 

मेरी चिंता का विषय है कि जब डेटाबेस परिवर्तन (और यह होगा) और मैं edmx फ़ाइलों को पुनर्जीवित मैं सभी इंटरफेस खो देंगे है परिभाषाएँ।

क्या इंटरफेस को पुन: उत्पन्न किए बिना एक ही परिणाम प्राप्त करने का एक बेहतर तरीका है।

आप

उत्तर

20

ईएफ कक्षाओं को partial कीवर्ड के साथ उत्पन्न करता है ताकि आप एक और फ़ाइल बनाकर और इंटरफ़ेस विशिष्ट सामग्री को रखकर इकाइयों को अतिरिक्त कार्यक्षमता जोड़ सकें।

public partial class DataEntrySummary : Mb.Interface.IDataEntrySummary 
{ 
} 

ईएफ मॉडल अद्यतन करते समय ये फ़ाइलें प्रभावित नहीं होंगी।

+0

धन्यवाद, पूर्ण, स्पष्ट और व्यावहारिक उत्तर। –

+0

अच्छा, मैंने पूरी तरह से 'आंशिक' कीवर्ड पर स्कैन किया और यह भी महसूस नहीं किया ... – JDandChips

1

मुझे लगता है कि मॉडल अद्यतन पर कोई ईवेंट बनाने ताकि हर बार मॉडल अद्यतन करता है यह इंटरफ़ेस परिभाषाओं जोड़ देगा धन्यवाद।

एक और विकल्प प्रॉक्सी क्लास बनाना है जो मॉडल से एक विशिष्ट इंटरफ़ेस और विरासत लागू करता है।

+0

इसके लिए धन्यवाद - अच्छा जवाब –

2

आप सही दिशा में जा रहे हैं। लेकिन प्रत्येक ईडीएमएक्स रीफ्रेश के बाद इंटरफेस को बनाए रखने के लिए, आपको टी 4 फाइलों को कस्टमाइज़ करना होगा।

आप https://entityinterfacegenerator.codeplex.com/ से अनुकूलित टी 4 फाइलों पर एक नज़र डाल सकते हैं, वे आपकी प्रत्येक कक्षा के लिए 1 इंटरफ़ेस उत्पन्न करते हैं ताकि आप आसानी से नकल कर सकें और उन्हें अलग-अलग परीक्षण कर सकें।

तो, जब भी आप एक नई टेबल या फ़ील्ड जोड़ते हैं, तो आप ईएफ प्रकारों को उत्पन्न करने के लिए माइक्रोसॉफ्ट द्वारा प्रदान किए गए लोगों के साथ अपने टी 4 टेम्पलेट्स को निष्पादित कर सकते हैं।

सम्मान।

+1

इसके लिए धन्यवाद, दुख की बात है कि हम अब कोड में चले गए हैं। यदि आवश्यकता हो तो मैं निश्चित रूप से फिर से इसकी समीक्षा करूंगा। –

+0

निश्चित बात। परियोजना की जांच के लिए धन्यवाद। उम्मीद है कि यह हमारे जैसे लोगों की मदद कर सकता है जिन्हें निर्णय लेना था कि किस तकनीक का उपयोग करना है। आईएमओ कोड पहले नई परियोजनाओं के लिए महान है। डेटाबेस पहले अधिक व्यावहारिक लगता है। यही कारण है कि मैं उन लोगों की मदद करने के लिए प्रोजेक्ट का निर्माण करता हूं जो पहले कोड करने का जोखिम नहीं उठा सकते थे। – Believe2014

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