2012-11-19 31 views
8

में कनवर्ट करें मुझे अभी विज़ुअल-स्टूडियो 2012 प्रोफेशनल मिला है और मैं एंटीटी-फ्रेमवर्क (5.0) डिज़ाइनर का उपयोग कर रहा हूं। मैं एक संपत्ति को एनम में बदलने की कोशिश कर रहा हूं, और this Microsoft video के अनुसार मैं संपत्ति पर राइट क्लिक करता हूं और Convert to Enum (2:06) पर चुनता हूं - मेरे संदर्भ मेनू में कनवर्ट करने का कोई विकल्प नहीं है।एनम

यहां मैं रोल टू एनम को बदलने की कोशिश कर रहा हूं। मैंने एक Int32 होने के लिए भूमिका निर्धारित की है।

enter image description here

क्या मैं गलत कर रहा हूँ?

उत्तर

8

पोस्ट में वीडियो के बाद बारीकी से, मैंने मैन्युअल रूप से एनम जोड़ने के लिए Model Browser खोला। मैंने ऐसा करने के बाद, और जिस तरह से मैंने बनाया था, उसमें भूमिका निभाई। यह जांचने के लिए कि क्या मैं अब संपत्ति पर Convert To Enum कर सकता हूं, मैंने टाइप को वापस Int32 में बदल दिया और फिर संपत्ति पर दायाँ क्लिक किया और कम और देखा कि मैं संदर्भ मेनू में Convert To Enum विकल्प देखता हूं!

तो, यदि आपकी समस्याएं हैं तो ये चरण हैं जिन्हें मैं Convert To Enum विकल्प सक्षम करने के लिए उपयोग करता था। यह मेरी राय में एक हैक है, क्योंकि अब मैं इस व्यवहार को एक नए समाधान और परियोजना के साथ पुन: उत्पन्न नहीं कर सकता। स्पष्ट रूप से मॉडल ब्राउज़र को पहली बार खोला गया है (या नीचे दिए गए पूर्ण चरणों) अब यह Convert To Enum विकल्प दिखाता है।

-1। त्वरित लॉन्च खोज विंडो का उपयोग करके, मैंने Model Browser में टाइप किया और इसे खोल दिया।

Model Browser search

-2। अपने डेटा मॉडल के लिए मॉडल ब्राउज़र में Enum Types पर राइट क्लिक करके Add New Enum Type... चुनें।

enter image description here

-3। अपनी संपत्ति को enum पर सेट करें, कॉम्बो-बॉक्स में सूचीबद्ध प्रकारों के नीचे स्क्रॉल करें और enum चुनें।

+1

यह अजीब है, मुझे अपने मॉडल ब्राउज़र में 'एनम प्रकार' फ़ोल्डर नहीं दिख रहा है। –

+3

@asattar कृपया ध्यान दें कि एनम प्रकार फ़ोल्डर ऑल्नी प्रकट होता है यदि आप .NET Framework 4.5 –

0

जब आप इसे एनम संपत्ति में परिवर्तित करने की कोशिश करते थे, तो इससे पहले संपत्ति का प्रकार क्या था? एनम विकल्प में कनवर्ट केवल तभी उपलब्ध होता है जब संपत्ति का प्रकार उन प्रकारों में से एक है जो enum अंतर्निहित प्रकार हो सकते हैं - Edm.Byte, Edm.SByte, Edm.Int16, Edm.Int32 या Edm.Int64। यदि संपत्ति का प्रकार इन प्रकारों में से एक नहीं है तो आप इसे सीधे enum में परिवर्तित नहीं कर सकते हैं क्योंकि डिज़ाइनर यह नहीं जान पाएगा कि अंतर्निहित प्रकार क्या होना चाहिए और यह महत्वपूर्ण है कि यह आपके डेटाबेस के साथ काम करेगा या नहीं।

+0

को लक्षित करते हैं, यदि आपने नोटिस किया है, तो मैंने पोस्ट किया है कि यह एक Int32 था। –

+0

मुझे इसे याद करना होगा। क्या आपके पास लगातार इसे दोबारा करने के लिए कदम हैं (या एक परियोजना जिसे मैं इसे देखने और जांचने के लिए खोल सकता हूं)? – Pawel

+0

मेरे जवाब में मैंने कहा कि मैं इसे 'ठीक' करने के बाद इसे पुन: पेश नहीं कर सका। एकमात्र विकल्प जो मैं सोच सकता हूं वो VS2012 को पुनर्स्थापित करना है और नई प्रोजेक्ट सी # लाइट्सविच जोड़ना है, फिर सी # क्लास लाइब्रेरी जोड़ें, ADO.Net इकाई आइटम जोड़ें, एंटीटी जोड़ें (टूलबॉक्स का उपयोग न करें और मॉडल ब्राउज़र पर क्लिक न करें) पर राइट क्लिक करें, फिर एक जोड़ें संपत्ति, int32 पर अपना प्रकार सेट करें और फिर enum में कनवर्ट करने के लिए राइट क्लिक करने का प्रयास करें।मैंने संक्षेप में शुरुआत करने के लिए यही किया, हालांकि मैंने enum बनाने की कोशिश करने से पहले कई अन्य संस्थाओं और कुछ संगठनों को जोड़ा। –

4

मुझे यह समस्या भी थी !! मैंने इकाई फ्रेमवर्क को 4 से 4.5 तक बदल दिया और समस्या हल हो गई! ;)

+2

आपका मतलब नेट फ्रेमवर्क 4.5 है, जैसे मैगा नीचे बताता है। निश्चित रूप से – SeanLAllen

+0

हां। ;) –

+0

उल्लेख करने के लिए पहला जवाब .net फ्रेमवर्क 4.5। –

3

जब मुझे एक ही समस्या थी तो समाधान लक्ष्य फ्रेमवर्क को ".NET Framework 4.5" पर सेट करना था।