Странная ошибка с шаблонами Entity Framework T4 - создание нового файла кода - PullRequest
2 голосов
/ 12 сентября 2011

У меня есть модель Entity Framework с шаблоном Entity Objects T4.По какой-то причине, теперь каждый раз, когда я меняю модель (скажем, имя модели Model.edmx и шаблон Model.tt), она использовалась для обновления файла Model.cs, но теперь она создает Model1.cs и покидает Model.cs.нетронутым.

Почему это?Где он определяет файл для обновления или gen?

Спасибо.

1 Ответ

3 голосов
/ 14 сентября 2011

Это иногда происходит, когда в выходном каталоге уже есть файл с именем «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>

Перезагрузите проект (щелкните правой кнопкой мыши)

...