Comment puis-je modifier la valeur par défaut stratégie de génération de code pour edmx?
Je veux modifier la valeur par défaut stratégie de génération de code, comment puis-je le faire?
Je veux simplement modifier le nom de la classe à partir de <#=code.Escape(container)#>
à Entities
et modifier la chaîne de connexion par défaut pour name=Default
.
(Je ne veux pas créer un fichier de modèle pour le projet, je veux le modifier afin qu'il fonctionne à l'échelle mondiale)
J'ai cherché pour l' .tt
fichiers, je n'ai pu trouver le ItemTemplates. Je ne sais pas ce que génère le code par défaut, c'est celui que je veux modifier.
Mise à jour: je ne sais toujours pas comment faire.
OriginalL'auteur BrunoLM | 2011-02-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez voir ce que génère le code si vous cliquez sur votre EMDX fichier et vérifiez les propriétés du fichier dans Visual Studio. Recherchez
Custom Tool
propriété qui vous dira le nom de la classe du générateur qui convertit EDMX XML dans le code compilable.Mais en ce qui concerne le modèle de personnalisation, je voudrais encore vous suggérons d'utiliser T4 qui prend votre EDMX et génère le même code en tant que générateur original. La bonne chose est que vous pouvez manipuler jusqu'à ce que vous déposez morts, si vous voulez.
Et si vous avez l'intention d'utiliser le T4 sur plusieurs EMDXs dans votre projet, je vous suggère plutôt de créer un
.ttinclude
fichier et de le référencer dans tous les.tt
fichier. De cette façon, vous permettra de réutiliser du code existant et quand vous changeriez il pourra être répercuté sur tous les fichiers générés.Une question de plus: Qu'entendez-vous par à l'échelle mondiale? Globalement pour tous les EDMX les fichiers dans votre projet ou pour toutes EDMX fichiers sur votre ordinateur ou tout EDMX fichiers sur votre équipe de projet ou quoi? Définir à l'échelle mondiale.
Édition supplémentaire
Puisque vous avez défini mondiale comme tous les projets sur une machine en particulier c'est ce que je ferais.
Tout d'abord: à l'aide de T4 permet de régler EDMX -> code de conversion changements par projet ou pour mieux dire par la solution (tous les projets dans une solution particulière). Sur les autres projets/solutions sur la même machine, vous devez inclure le même modèle T4 de référence. Il n'est donc pas réellement mondiale dans votre sens...
La meilleure chose que vous pourriez faire est de créer un personnalisé Visual Studio modèle d'élément avec ce modèle T4 de sorte qu'il serait beaucoup plus facile l'ajout de ce défaut de modèle T4 vos solutions/projets. C'est aussi globale que vous pouvez le faire par T4.
Peut-être que vous devriez lire ce MSDN entrée qui parle de votre type de personnalisation:
Comment faire pour Personnaliser un Objet de la Couche de Génération de Code (Modèle de Données d'Entité Designer)
OriginalL'auteur Robert Koritnik
Je ne sais pas si il est encore possible de modifier la valeur par défaut de la génération de code.
Au lieu d'essayer de modifier la valeur par défaut de la génération de code, je suppose que vous pourriez créer un
.tt
qui génère une classe dérivée de laObjectContext
. De cette façon, vous pouvez nommer et de mettre en œuvre le constructeur par défaut que vous le souhaitez.Quelque chose comme:
L'inconvénient de cette approche est que vous aurez besoin pour déployer cette
.tt
fichier avec tous les EDMX vous créez.Cependant, avec Visual Studio add-in architecture, vous pourriez envisager de créer un modèle qui crée un EDMX et ce
.tt
de fichier par défaut. Comme un remplacement pour l'ajout d'une plaine "ADO.NET Modèle de Données d'Entité"À la recherche dans le
EntityModelCodeGenerator
(l'Outil Personnalisé qui est géré par le défaut codegen stratégie), il semble qu'il est enregistré auprès de laSingleFileGenerator
mécanisme d'extensibilité, qui est un composant COM. Quelques infos ici.OriginalL'auteur Yannick Motton