EF 4,POCO模板 - 跨命名空间分割时出错

时间:2010-12-15 00:32:09

标签: .net-4.0 entity-framework-4 poco

我按照MSDN Blogs > ADO.NET team blog > Walkthrough: POCO Template for the Entity Framework上列出的步骤进行操作。

我在Keith.Data项目(和命名空间)中创建了一个简单的模型。我创建了一个Keith.Model项目并将其添加到解决方案中,删除了Class.cs文件,将DataEntities.tt文件拖放到Keith.Model项目中,并在我的Keith.Data项目中添加了对Keith.Model的引用。然后我将DataEntities.tt文件中的路径引用从@“DataModel.edmx”更改为@“.. \ Keith.Data \ DataModel.edmx”。当我保存它时,我收到了这个错误:

  
    

运行转换:System.Reflection.TargetInvocationException:调用目标抛出了异常。 ---> System.IO.FileNotFoundException:无法找到文件
      在Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolvePath(String path)
      在Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolvePath(String path)
      ---内部异常堆栈跟踪结束---
      在System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo方法,Object target,Object []参数,SignatureStruct& sig,MethodAttributes methodAttributes,RuntimeType typeOwner)
      在System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo方法,Object target,Object []参数,Signature sig,MethodAttributes methodAttributes,RuntimeType typeOwner)
      at System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object [] parameters,CultureInfo culture,Boolean skipVisibilityChecks)
      在System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化)
      在Microsoft.VisualStudio.TextTemplating6A60439B68BD2BCE671B842FB15E35C4.GeneratedTextTransformation.DynamicHost.ResolvePath(String path)
      在Microsoft.VisualStudio.TextTemplating6A60439B68BD2BCE671B842FB15E35C4.GeneratedTextTransformation.MetadataLoader.TryCreateEdmItemCollection(String sourcePath,String [] referenceSchemas,EdmItemCollection& edmItemCollection)
      在Microsoft.VisualStudio.TextTemplating6A60439B68BD2BCE671B842FB15E35C4.GeneratedTextTransformation.MetadataLoader.CreateEdmItemCollection(String sourcePath,String [] referenceSchemas)
      在Microsoft.VisualStudio.TextTemplating6A60439B68BD2BCE671B842FB15E35C4.GeneratedTextTransformation.TransformText()
      在Microsoft.VisualStudio.TextTemplating.TransformationRunner.RunTransformation(TemplateProcessingSession session,String source,ITextTemplatingEngineHost host,String& result)

  

任何人遇到这个并知道问题是什么?我确信我错过了一些东西,但对于我的生活,我无法弄清楚是什么。

TIA

2 个答案:

答案 0 :(得分:2)

我复制了你提到的场景,当POCO.tt中的.edmx文件的路径(你的场景中的DataEntities.tt)错误时,我得到了相同的错误。仔细检查您指定的路径是否正确。

答案 1 :(得分:0)

我使用的是EF4 / POCO,但我的所有权限都是在代码中定义的而不是edmx,所以我不是你正在使用的方法的专家......

也就是说,一种识别应用程序正在做什么的简单方法:下载sysinternals Proces Monitor并将其指向VS - 然后查看它尝试访问的文件(过滤 DataModel。 EDMX )。这至少会告诉你文件的预期位置 - 你的相对路径可能不正确。

我确信在这个主题上有更多经验的其他开发者可以给你一个更好的答案,但这就是我解决它的方法......