2010-10-11 25 views
9

Estoy usando VS2010, y he descargado el C# POCO Entity Generator y lo he instalado, ahora quiero usarlo.Cómo usar el generador de entidades poco

no puedo leer el toturial y no puedo encontrar ningún otros buenos toturials, así que he tenido que me vaya - He creado un modelo y luego estoy creando nueva entidad POCO, pero Obtuve el siguiente error:

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) 

¿Cuál es el problema? Creo que no puede encontrar el mapeo del modelo, si este es el caso, ¿cómo lo resuelvo?

1: debido a la restricción de internet en mi ciudad natal.

+0

Puede que quiera ver mi respuesta para una pregunta relacionada aquí -http: //stackoverflow.com/a/14304115/ 201648 –

+0

La respuesta de Ladislav fue suficiente para mí y mi problema se resolvió. –

Respuesta

11

Compruebe this article para la descripción del error y cómo solucionarlo. Es un problema de sustitución de ruta cuando se crea una plantilla POCO desde Agregar elemento en Visual Studio.

10

Este error se produce cuando la ruta al archivo EDMX es incorrecta en el archivo TT. Para resolverlo, abra el archivo TT y reemplace la ruta manualmente con la ruta relativa al archivo EDMX.

Por ejemplo, cambiar esta situación:

string inputFile = @"Db.edmx"; 

a algo como esto:

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

Esta es la línea inferior del artículo vinculado en la [respuesta aceptada actualmente] (http://stackoverflow.com/a/3906780/947171). Este fue exactamente mi problema. Cambié el nombre del archivo .edmx, que renombró el diseñador y el diagrama, pero no actualicé el nombre del archivo interno en el T4. Modificando manualmente las plantillas T4 (tanto el Modelo como el Contexto) para 'const string inputFile = @" .edmx ";' solucionó mi problema. –

0

como se describe en entityframeworktutorial, antes de la generación entidades POCO, por favor desactivar la generación de código por defecto que genera Contexto y Entidades código en Model1.designer.cs. Para desactivar la generación de código predeterminada, haga clic derecho en .edmx, seleccione propiedades y luego elimine el valor de la propiedad 'Herramienta personalizada' Value 'EntityModelCodeGenerator'. Ahora haga clic derecho en la superficie del diseñador, seleccione "Agregar elemento de generación de códigos ..." y continúe como lo hizo antes de

Cuestiones relacionadas