2012-11-10 30 views
15

मैं वीएस 2012 और ईएफ 5 का उपयोग कर रहा हूं। मेरे पास एक मौजूदा डेटाबेस है जिसे मैं मौजूदा डेटाबेस से पीओसीओ कक्षाएं बनाना चाहता हूं। मैंने अपनी परियोजना में एडीओ.NET इकाई डेटा मॉडल जोड़ने के चरणों का पालन किया। मैं एक मौजूदा डेटाबेस का उपयोग करने के लिए जादूगर के माध्यम से चला गया। इसके बाद डिजाइनर के साथ एडीएमएक्स और टीटी फाइलें खुल गईं। हालांकि, मैं पीओसीओ वस्तुओं को बनाना चाहता हूं और उनका उपयोग करना चाहता हूं। माइक्रोसॉफ्ट साइट का कहना है कि पीओसीओ इकाई फ्रेमवर्क जनरेटर अप्रचलित है और मुझे डीबीसीएन्टेक्स्ट जनरेटर का उपयोग करना चाहिए। मैं पीओसीओ कक्षाएं उत्पन्न करने के लिए उपयोग किए जाने वाले चरणों को नहीं समझ सकता। मैं केवल एडीएमएक्स डिजाइनर देखता हूं। मैं वास्तव में एक एडीएमएक्स फ़ाइल भी नहीं चाहता बल्कि इसके बजाय सिर्फ पीओसीओ कक्षाएं चाहता हूं। ईएफ 5 और वीएस 2012 का उपयोग कर मौजूदा डेटाबेस से पीओसीओ कक्षाएं कैसे बनाई जा सकती हैं?इकाई फ्रेमवर्क 5 - मौजूदा डेटाबेस से पीओसीओ कक्षाएं कैसे उत्पन्न करें

+0

वीएस2012 डिफ़ॉल्ट रूप से पीओसीओ इकाइयों और डीबीकॉन्टेक्स्ट उत्पन्न करता है। क्या यह आपके लिए काम नहीं करता है? – Pawel

उत्तर

14

उपयोग EF 5.x DbContext Fluent Generator

आप ऑनलाइन टेम्पलेट्स से जोड़ सकते हैं:

  • मौजूदा डेटाबेस से edmx POCO
  • के लिए एफई 5.x जोड़े
  • करें Add New Item
  • खोजें ऑनलाइन टेम्पलेट्स उत्पन्न डीबीकॉन्टेक्स्ट फ्लुएंट जनरेटर

यह अपनी परियोजना के लिए तीन टी -4 टेम्पलेट्स जोड़ देगा:

  • XXX.Context.tt - संदर्भ DbContext
  • XXX.Entities.tt से विरासत में मिली - POCO संस्थाओं
  • XXX। Mappings.tt - प्रत्येक इकाई के लिए धाराप्रवाह मैपिंग

लेकिन आपको मैन्युअल रूप से अपने edmx डेटा मॉडल पर पथ सेट करने की आवश्यकता है। इनमें से प्रत्येक टेम्पलेट्स में string inputFile = @"$edmxInputFile$"; है। आप यहाँ अपने edmx फ़ाइल का नाम देना होगा:

string inputFile = @"Northwind.edmx";

+0

जानकारी के लिए धन्यवाद। मैंने टेम्पलेट्स जोड़े हैं लेकिन कोई कोड उत्पन्न नहीं हुआ है। मैंने उन सभी को $ edmxInputFile $ को ठीक करने के लिए बदल दिया लेकिन कुछ नहीं हुआ। मैंने उनमें से प्रत्येक पर राइट क्लिक किया और रन कस्टम टूल पर क्लिक किया। मैं क्या खो रहा हूँ? – user31673

+0

@ user31673 वास्तव में आपको किसी भी कस्टम टूल की आवश्यकता नहीं है। बस संपादित टेम्पलेट को सहेजें, और यह स्वचालित रूप से आउटपुट फ़ाइल उत्पन्न करेगा (यह टेम्पलेट के नोड के नीचे होगा) –

+1

आह, एक और बात - edmx फ़ाइल के साथ उत्पन्न संदर्भ और इकाइयों को हटाएं। आपको केवल आरेख की आवश्यकता है। –

9

यह करने के लिए प्रक्रिया बहुत अब सुव्यवस्थित है, ऐसा लगता है। स्वीकार्य उत्तर से कदम अब ईडीएमएक्स डिजाइनर से ही करना आसान है। असल में,

  • , परियोजना के लिए ADO.NET इकाई डेटा मॉडल जोड़ कर किसी मौजूदा डेटाबेस से मॉडल (edmx) उत्पन्न (अधिक जानकारी के लिए here देखें)
  • और फिर

इकाई डिजाइनर में .edmx फ़ाइल खोलें।

इकाई डिजाइनर सतह पर खाली क्षेत्र पर राइट-क्लिक करें और कोड जनरेशन आइटम जोड़ें इंगित करें।

नया आइटम जोड़ें संवाद में, ऑनलाइन टेम्पलेट्स का चयन करें और खोज ऑनलाइन टेम्पलेट्स टेक्स्ट बॉक्स में DBContext टाइप करें।

अपने टेम्पलेट के लिए उपयुक्त संस्करण का चयन करें (5.0, यदि आप इकाई फ्रेमवर्क 5.0 को लक्षित करना चाहते हैं)।

ठीक क्लिक करें।

यह सब काम करेगा, जाहिर है। उद्धृत निर्देश यहां ऑनलाइन टेम्पलेट्स को संदर्भित करते हैं जैसे ईएफ 5.x डीबीकॉन्टेक्स्ट फ्लुएंट जनरेटर की आवश्यकता है। यदि आपने इसे पहले से इंस्टॉल किया है, तो ऑनलाइन टेम्पलेट्स में इंस्टॉल किए गए टेम्पलेट्स में इसकी खोज करने की आवश्यकता नहीं है।

अधिक जानकारी के लिए आप this पृष्ठ, "ऑब्जेक्ट लेयर कोड जेनरेट करने के लिए डीबीकॉन्टेक्स्ट जेनरेटर टेम्पलेट का उपयोग करने के लिए" अनुभाग देख सकते हैं।