【问题标题】:How to use the poco entity generator如何使用 poco 实体生成器
【发布时间】:2013-03-18 02:31:56
【问题描述】:

我用的是VS2010,我已经下载C# POCO Entity Generator并安装了,现在想用。

我无法阅读toturial 1,也找不到任何其他好的教程,所以我自己尝试了一下 - 我创建了一个模型,然后我创建新的 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:由于我家乡的互联网限制。

【问题讨论】:

标签: c# ado.net entity-framework-4


【解决方案1】:

检查this article 以获取错误描述以及如何处理它。在 Visual Studio 中通过 Add item 创建 POCO 模板时路径替换的问题。

【讨论】:

    【解决方案2】:

    当 TT 文件中的 EDMX 文件路径不正确时,会发生此错误。要解决此问题,请打开 TT 文件,并将路径手动替换为 EDMX 文件的相对路径。

    例如,改变这个:

    string inputFile = @"Db.edmx";
    

    到这样的事情:

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

    【讨论】:

    • 这是currently accepted answer 中链接的文章的底线。这正是我的问题。我重命名了 .edmx 文件,该文件重命名了设计器和图表,但没有更新 T4 中的内部文件名。手动将 T4 模板(模型和上下文)修改为 const string inputFile = @"<ActualNameOfEDMXFile>.edmx"; 解决了我的问题。
    【解决方案3】:

    如entityframeworktutorial 中所述,在生成 POCO 实体之前,请禁用在 Model1.designer.cs 中生成上下文和实体代码的默认代码生成。要禁用默认代码生成,请右键单击 .edmx,选择属性,然后删除“自定义工具”属性值“EntityModelCodeGenerator”的值。现在右键单击设计器表面,选择“添加代码生成项..”并像以前一样继续

    【讨论】:

      猜你喜欢
      • 2011-11-16
      • 1970-01-01
      • 2011-07-17
      • 2011-06-30
      • 1970-01-01
      • 2016-07-19
      • 1970-01-01
      • 2019-03-30
      • 2012-03-24
      相关资源
      最近更新 更多