2011-09-12 2 views
2

J'ai un modèle Entity Framework avec le modèle Entity Objects T4. Pour une raison quelconque, maintenant chaque fois que je change le modèle (disons que le nom du modèle est Model.edmx et le modèle Model.tt), il sert à mettre à jour le fichier Model.cs, mais maintenant il crée Model1.cs et laisse Model.cs intacte.Bogue étrange avec Entity Framework T4 Templates - Création d'un nouveau fichier de code

Pourquoi est-ce? Où définit-il le fichier à mettre à jour ou gen?

Merci.

+0

Est-ce que votre fichier .tt contiennent une chaîne comme 'fileManager.StartNewFile (entity.Name +" .cs ");'? – abatishchev

+0

I Ctrl + F le texte "fileManager.StartNewFile" et rien ne revient ... –

+0

Essayez de trouver et de vérifier toutes les entrées de '.cs' dans le dossier du fichier .tt – abatishchev

Répondre

3

Cela arrive parfois quand il y a déjà un fichier nommé "Model.cs" dans le répertoire de sortie. Visual Studio génère ensuite un autre fichier nommé "Model1.cs". La solution consiste à décharger le fichier de projet (clic droit sur le projet) et à le modifier (clic droit de nouveau). Cherchez quelque chose comme ceci:

<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> 

Remplacer "Model1.cs" avec "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> 

projet Recharger (clic droit)

Questions connexes