Entity Framework T4模板的奇怪错误 - 创建新的代码文件

时间:2011-09-12 14:39:36

标签: .net entity-framework entity-framework-4 t4

我有一个带有实体对象T4模板的实体框架模型。出于某种原因,现在每次我更改模型(比如模型名称是Model.edmx和模板Model.tt)时,它都用于更新Model.cs文件,但现在它正在创建Model1.cs并离开Model.cs不变。

为什么?它在哪里定义要更新的文件或生成?

感谢。

1 个答案:

答案 0 :(得分:3)

当输出目录中已存在名为“Model.cs”的文件时,有时会发生这种情况。然后Visual Studio生成另一个名为“Model1.cs”的文件。解决这个问题的方法是卸载项目文件(右键单击项目)并编辑它(再次右键单击)。寻找这样的东西:

<ItemGroup>
   <Compile Include="Model1.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Model.tt</DependentUpon>
   </Compile>
</ItemGroup>
<ItemGroup>
   <None Include="Model.tt">
      <Generator>TextTemplatingFileGenerator</Generator>
      <LastGenOutput>Model1.cs</LastGenOutput>
   </None>
</ItemGroup>

将“Model1.cs”替换为“Model.cs”

<ItemGroup>
   <Compile Include="Model.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Model.tt</DependentUpon>
   </Compile>
</ItemGroup>
<ItemGroup>
   <None Include="Model.tt">
      <Generator>TextTemplatingFileGenerator</Generator>
      <LastGenOutput>Model.cs</LastGenOutput>
   </None>
</ItemGroup>

重新加载项目(右键单击)