Visual Studio 2012 - 无法移动EF .tt文件

Cle*_*ud8 14 entity-framework visual-studio-2012

我在VS2012中注意到,当您创建新的EF模型(.edmx)时,DbContext是默认代码生成,而.tt(T4模板)文件现在嵌套在解决方案资源管理器中的.edmx文件.

问题: 有没有办法将这些.tt文件移动到另一个文件夹或项目? 当我尝试在解决方案资源管理器中拖放时,它将不允许我移动嵌套的.tt文件.

问题详细信息: 以前(在VS2010中)我曾经将我的POCO的一个.tt文件移动到一个名为DataDefinitions的类库中,我将另一个.tt文件留给了一个名为DataAccess的类库中的上下文.现在看来我将无法移动这些文件......并将我的资产分成不同的层.

在这篇MSDN文章中,如果你滚动到底部,你可以看到.tt文件现在如何嵌套的图片... http://msdn.microsoft.com/en-us/data/jj613116

Lad*_*nka 24

这是一个奇怪的新功能,其中模板作为依赖项添加到EDMX文件中.您可以通过编辑项目的.csproj文件来修复它(您可以在记事本中执行此操作或在VS中卸载项目并对其进行编辑).你会发现这样的事情:

<None Include="Model.tt">
  <Generator>TextTemplatingFileGenerator</Generator>
  <DependentUpon>Model.edmx</DependentUpon>
  <LastGenOutput>Model.cs</LastGenOutput>
</None>
Run Code Online (Sandbox Code Playgroud)

您只需要删除DependentUpon元素,模板项将成为项目的独立部分.

  • 我讨厌你要改变你的正确架构,以适应微软蹩脚的设置.我不知道为什么微软将实体和数据访问层(上下文)放在同一个项目中.如果这不能轻易修复yoru用户界面代码将不得不直接引用你的DAL而不是通过BLL,这在我看来确实违反了正确的N层架构.UI不应通过BLL直接访问DAL,以确保处理正确的业务规则. (2认同)