如何修复Entity Framework 4.1模型模板中丢失的类型/命名空间错误?

问题描述

| 我有一个T4模板为支持我的
.edmx
模型的实体生成C#类。模板以以下标题开头:
<#@ template language=\"C#\" debug=\"false\" hostspecific=\"true\"#>
<#@ include file=\"EF.Utility.CS.ttinclude\"#>
<#@ output extension=\".cs\"#>
尝试构建项目会导致这些错误
error CS0234: The type or namespace name \'Design\' does not exist in the namespace \'System.Data.Entity\'...
error CS0246: The type or namespace name \'EnvDTE\' Could not be found (are you missing a using directive...
error CS0234: The type or namespace name \'VisualStudio\' does not exist in the namespace \'Microsoft\'...
我怎样才能解决这个问题?     

解决方法

        事实证明,基于VS可扩展性线程,问题的原因是 Clarius Visual T4扩展。重置ѭ3中的该节点 归档到
<Compile Include=\"SomeModel.tt\">
  <Generator>TextTemplatingFileGenerator</Generator>
  <LastGenOutput>SomeModel.cs</LastGenOutput>
</Compile>
<None Include=\"SomeModel.tt\">
  <Generator>TextTemplatingFileGenerator</Generator>
  <LastGenOutput>SomeModel.cs</LastGenOutput>
</None>
解决方案是在“ 3”文件中手动将节点更改为“ 6”。改变它 通过Visual Studio属性编辑器返回的
.tt
文件不起作用。 最后,禁用扩展名可以防止这种情况再次发生。     ,        只需在
.tt
文件的开头添加所需的程序集即可;像这样:
<#@ template language=\"C#\" debug=\"false\" hostspecific=\"true\"#>
<#@ assembly name=\"System.Data.Entity\" #>
<#@ assembly name=\"System.Data.Entity.Design\" #>
...