2010-10-11 12 views
9

मैं वीएस -2010 का उपयोग कर रहा हूं, और मैंने C# POCO Entity Generator डाउनलोड किया है और इसे स्थापित किया है, अब मैं इसका उपयोग करना चाहता हूं।पॉको इकाई जनरेटर का उपयोग कैसे करें

मैं toturial पढ़ सकते हैं नहीं है और मैं किसी भी अन्य अच्छा toturials नहीं मिल रहा है, तो मैं एक अपने आप को जाना पड़ा है - मैं एक मॉडल बनाया है और उसके बाद मैं नए POCO इकाई बना रहा हूं, लेकिन मुझे त्रुटि मिली:

Error 1 Running transformation: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: Unable to locate file 
    at Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolvePath(String path) 
    at Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolvePath(String path) 
    --- End of inner exception stack trace --- 
    at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) 
    at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at Microsoft.VisualStudio.TextTemplatingA9DB2432A51EA8D42A615FBEB2ECB4E5.GeneratedTextTransformation.DynamicHost.ResolvePath(String path) 
    at Microsoft.VisualStudio.TextTemplatingA9DB2432A51EA8D42A615FBEB2ECB4E5.GeneratedTextTransformation.MetadataLoader.TryCreateEdmItemCollection(String sourcePath, String[] referenceSchemas, EdmItemCollection& edmItemCollection) 
    at Microsoft.VisualStudio.TextTemplatingA9DB2432A51EA8D42A615FBEB2ECB4E5.GeneratedTextTransformation.MetadataLoader.CreateEdmItemCollection(String sourcePath, String[] referenceSchemas) 
    at Microsoft.VisualStudio.TextTemplatingA9DB2432A51EA8D42A615FBEB2ECB4E5.GeneratedTextTransformation.TransformText() 
    at Microsoft.VisualStudio.TextTemplating.TransformationRunner.RunTransformation(TemplateProcessingSession session, String source, ITextTemplatingEngineHost host, String& result) 

समस्या क्या है? मुझे लगता है कि यह मॉडल मैपिंग नहीं ढूंढ सकता है, अगर ऐसा है, तो मैं इसे कैसे हल करूं?

1: मेरे गृह नगर पर इंटरनेट प्रतिबंध के कारण।

+0

से पहले जारी रखें, आप यहां किसी संबंधित प्रश्न के लिए मेरा उत्तर देखना चाहेंगे -http: //stackoverflow.com/a/14304115/ 201648 –

+0

Ladislav उत्तर मेरे लिए पर्याप्त था और मेरी समस्या हल हो गई। –

उत्तर

11

त्रुटि विवरण के लिए this article जांचें और इसके साथ कैसे निपटें। दृश्य स्टूडियो में आइटम जोड़ें से POCO टेम्पलेट बनाते समय पथ प्रतिस्थापन की समस्या है।

10

यह त्रुटि तब होती है जब ईडीएमएक्स फ़ाइल का पथ टीटी फ़ाइल में गलत है। इसे हल करने के लिए, टीटी फ़ाइल खोलें, और मैन्युअल रूप से ईडीएमएक्स फ़ाइल के सापेक्ष पथ के साथ पथ को प्रतिस्थापित करें। कुछ इस तरह के

string inputFile = @"Db.edmx"; 

:

उदाहरण के लिए, यह परिवर्तन

string inputFile = @"..\DataAccess\Db.edmx"; 
+0

यह [वर्तमान में स्वीकृत उत्तर] (http://stackoverflow.com/a/3906780/947171) में जुड़े लेख से नीचे की रेखा है। यह वास्तव में मेरी समस्या थी। मैंने .edmx फ़ाइल का नाम बदल दिया था, जिसने डिजाइनर और आरेख का नाम बदल दिया था, लेकिन टी 4 में आंतरिक फ़ाइल नाम अपडेट नहीं किया था। मैन्युअल रूप से टी 4 टेम्पलेट्स (मॉडल और संदर्भ दोनों) को 'स्ट्रिंग इनपुटफाइल = @ " .edmx" में मैन्युअल रूप से संशोधित करना;' मेरी समस्या ठीक हुई। –

0

POCO संस्थाओं पीढ़ी से पहले entityframeworktutorial में वर्णित है,, डिफ़ॉल्ट कोड पीढ़ी जो प्रसंग और संस्थाओं कोड उत्पन्न अक्षम कर दें Model1.designer.cs में। डिफ़ॉल्ट कोड पीढ़ी को अक्षम करने के लिए, .edmx पर राइट क्लिक करें, गुणों का चयन करें और फिर 'कस्टम टूल' संपत्ति मान 'EntityModelCodeGenerator' के मान को हटा दें। अब डिजाइनर सतह पर राइट क्लिक करें, "कोड जनरेशन आइटम जोड़ें .." चुनें और

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