2012-04-12 20 views
56

मेरे पास एक मौजूदा डेटाबेस है। मैं उम्मीद कर रहा था कि इस डेटाबेस से कक्षा फाइलें उत्पन्न करने का कोई तरीका था। हालांकि, मुझे कक्षा फाइलों से डेटाबेस उत्पन्न करने में बहुत कुछ दिखाई देता है।इकाई फ्रेमवर्क - जेनरेटिंग क्लासेस

क्या एंटिटी फ्रेमवर्क का उपयोग कर मौजूदा डेटाबेस से कक्षा फ़ाइलों को उत्पन्न करने का कोई तरीका है? यदि हां, तो कैसे? क्या कोई मुझे ट्यूटोरियल में इंगित कर सकता है?

+0

यह देखें http://stackoverflow.com/questions/9876619/ इकाई-फ्रेमवर्क -5-0-बीटा-विल-ए-डीबीकॉनटेक्स्ट-कोड-पीढ़ी-टेम्पलेट-प्रदान करें – AmirHossein

उत्तर

113

1) सबसे पहले आपको अपने डेटाबेस का उपयोग कर EDMX मॉडल उत्पन्न करने की आवश्यकता है। ऐसा करने के लिए आपको अपनी परियोजना में नया आइटम जोड़ना चाहिए:

  • टेम्पलेट सूची से ADO.NET Entity Data Model का चयन करें।
  • मॉडल सामग्री पृष्ठ पर, डेटाबेस विकल्प से जेनरेट करें का चयन करें और अगला क्लिक करें।
  • अपना डेटाबेस चुनें।
  • अपना डेटाबेस ऑब्जेक्ट्स पृष्ठ चुनें, टेबल्स की जांच करें। यदि आपको आवश्यकता हो तो दृश्य या संग्रहीत प्रक्रियाएं चुनें।

तो अब आपके पास आपकी परियोजना में Model1.edmx फ़ाइल है। अपने मॉडल का उपयोग कर

2) उत्पन्न करने के लिए कक्षाएं:

  • अपने EDMX मॉडल डिज़ाइनर खोलें।
  • डिज़ाइन सतह पर राइट क्लिक -> कोड जनरेशन आइटम जोड़ें ...
  • ऑनलाइन टेम्पलेट का चयन करें।
  • EF 4.x DbContext Generator for C# का चयन करें।
  • 'जोड़ें' पर क्लिक करें।

दो आइटम अपनी परियोजना के लिए जोड़ रहे ध्यान दें कि:

  • Model1.tt (इस टेम्पलेट बहुत ही सरल POCO कक्षाएं प्रत्येक इकाई के लिए अपने मॉडल में उत्पन्न करता है)
  • Model1.Context.tt (इस टेम्पलेट के लिए एक व्युत्पन्न DbContext उत्पन्न करता है

    : लगाने और उन्हें डेटा)

3) पढ़ें/लिखें डेटा का उदाहरण बने के लिए उपयोग

var dbContext = new YourModelClass(); //class derived from DbContext 
var contacts = from c in dbContext.Contacts select c; //read data 
contacts.FirstOrDefault().FirstName = "Alex"; //edit data 
dbContext.SaveChanges(); //save data to DB 

भूलें कि आपको EntityFramework का 4.x संस्करण चाहिए। आप यहां ईएफ 4.1 डाउनलोड कर सकते हैं: Entity Framework 4.1

+0

मैं आपके निर्देशों का पालन करता हूं, मैंने 'Model1.tt' और 'Model1.Context.tt' दोनों को बनाया है, लेकिन, मैं समझ नहीं पाया कि मैं 3 कदम कैसे कर सकता हूं। क्या तुम मेरी मदद कर सकते हो? मैंने यह देखने के लिए संकलित किया कि मुझे कोई परिणाम मिला है लेकिन कोई भाग्य = ( –

+0

क्या आपने जांच की है कि क्या आपके पीओसीओ कक्षाएं और संदर्भ उत्पन्न हुए हैं? या आपको चरण 2 पर कुछ त्रुटियां मिलती हैं? – algreat

+0

दोनों ठीक हैं, मैंने Nuget का उपयोग करके ईएफ का संदर्भ बनाया । कोई त्रुटि नहीं, सफल बनाएँ। –

15

मुझे बहुत अच्छा समाधान मिला। माइक्रोसॉफ्ट ने एंटीटी फ्रेमवर्क पावर टूल्स का बीटा संस्करण जारी किया: Entity Framework Power Tools Beta 2

वहां आप कुछ क्लिक में मौजूदा डेटाबेस के लिए पीओसीओ कक्षाएं उत्पन्न कर चुके हैं, डीबीकॉन्टेक्स्ट और कोड फर्स्ट मैपिंग उत्पन्न कर सकते हैं। यह बहुत अच्छा है!

स्थापना के बाद कुछ संदर्भ मेनू विकल्प आपके विजुअल स्टूडियो में जोड़े जाएंगे।

सी # प्रोजेक्ट पर राइट-क्लिक करें।चुनें इकाई Framework-> रिवर्स इंजीनियर कोड पहले (POCO वर्गों उत्पन्न करता है, व्युत्पन्न एक मौजूदा डेटाबेस के लिए DbContext और कोड पहले मानचित्रण):

Visual Studio Context Menu

फिर अपने डेटाबेस का चयन और ठीक क्लिक करें। बस इतना ही! यह बहुत आसान है।

1
  1. ओपन edmx मॉडल
  2. राइट क्लिक करें -> अद्यतन मॉडल ब्राउज़र से -> संग्रहित प्रक्रिया -> अपने संग्रहीत प्रक्रिया का चयन करें -> समाप्त
  3. मॉडल ब्राउज़र बगल में पॉपिंग समाधान एक्सप्लोरर के लिए देखें।
  4. जाओ आयात फंक्शन -> राइट अपने संग्रहित प्रक्रिया पर क्लिक करें -> जोड़ें समारोह आयात
  5. वापसी के तहत संस्थाओं का चयन का एक संग्रह -> नीचे
  6. अपने समाधान का निर्माण बूंद से अपने इकाई नाम का चयन करें।
+0

प्रक्रिया का वर्णन करना बेहतर होगा। जैसे आप क्या कर रहे हैं (चरण-दर-चरण) और क्यों? –

1

edmx मॉडल EF7 साथ काम नहीं करेंगे लेकिन मैं एक समुदाय/व्यावसायिक उत्पाद है जो बहुत शक्तिशाली हो रहा है मिल गया है: http://www.devart.com/entitydeveloper/editions.html

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