2011-09-12 75 views
2

我有一個實體框架模型與實體對象T4模板。出於某種原因,現在每次我更改模型(比如模型名稱是Model.edmx和模板Model.tt)時,它用於更新Model.cs文件,但現在它創建Model1.cs並保留Model.cs不變。實體框架T4模板奇怪的錯誤 - 創建新的代碼文件

這是爲什麼?它在哪裏定義要更新或創建的文件?

謝謝。

+0

請問你.TT文件包含像串'fileManager.StartNewFile(entity.Name +「.cs」);'? – abatishchev

+0

我Ctrl + F文本「fileManager.StartNewFile」並沒有回來...... –

+0

嘗試找到並驗證.tt文件的所有條目在.tt文件的文件夾中 – abatishchev

回答

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> 

刷新項目(右鍵)