Personnalisation du modèle Entity Framework T4, analyse de code supprimer

18 janvier 0 Commentaire Catégorie: C#

Lien

En bref rappel, la raison pour laquelle ce poste existe encore parce que le code généré par le concepteur EF4 ne gère pas correctement supprimer les avertissements d’analyse du code . Dans ce poste, j’ai mentionné que je donnerais un bon modèle T4 et un tutoriel sur l’intégrer dans votre modèle EDMX. Ce poste détaille les étapes à la création et la personnalisation d’un modèle Entity Framework 4 T4.

T4 (la boîte à outils de transformation de modèles de texte ) est la technologie de génération de code intégré dans Visual Studio. Heureusement, le concepteur EF4 a été amélioré pour supporter modèles personnalisables afin que les développeurs sont libres de modifier le code qui est généré pour votre ObjectContext et classes d’entité.

Pour commencer, je suppose que vous avez déjà un fichier EDMX qui a été généré à partir de votre base de données.

Remarque Beta

Ces mesures ont été écrit pour Visual Studio 2010 Beta 2, de sorte qu’ils peuvent changer légèrement avant RTM.

Étape 1

Ouvrez le Concepteur EDMX, faites un clic droit sur l’aire de conception, puis sélectionnez « Ajouter un élément de génération de code … »

addcodegenitem

Étape 2

Sélectionnez l’option « ADO.NET EntityObject Generator » de la boîte de dialogue Ajouter un nouvel élément

Remarque: Les instructions spécifiques ci-dessous ne fonctionnent que pour le générateur standard de EntityObject, et ne s’appliquent pas directement au modèle Self-Tracking Entities. Si vous souhaitez utiliser des entités de suivi automatique, les instructions de ce message devrait être suffisante pour personnaliser le modèle vous-même.

image

Maintenant, vous devriez avoir un fichier EfModel.tt dans votre projet. C’est le modèle T4 que le concepteur EDMX va utiliser pour générer les classes qui représentent votre modèle EDMX.

Étape 3

Ouvrez le fichier nouvellement créé EfModel.tt.

De là, vous pouvez personnaliser le modèle vous-même (les instructions sont fournies à l’étape 3b, ou tout simplement de télécharger le modèle T4 que j’ai fourni à l’étape 3a)

Étape 3a – Téléchargez le modèle corrigé

  1. Ouvrez le modèle T4
  2. Ecraser tous les textes dans votre fichier. Tt fichier avec le texte à partir du lien ci-dessus
  3. Modifier le jeton « YOUR_EDMX_FILE.edmx » pour le nom de fichier de votre fichier edmx réelle
  4. Passez à l’étape 4

Étape 3b – Personnalisez votre modèle manuellement

Pour supprimer analyse de code, vous avez besoin pour décorer chaque définition de classe avec un [GeneratedCode] attribut, comme suit:

[global::System.CodeDom.Compiler.GeneratedCode("EdmxTool", "1.0.0.0")]

Vous pouvez utiliser le standard de Visual Studio de dialogue Rechercher pour trouver toutes les occurrences où les classes sont générées. Dans le modèle que j’utilise (celui fourni avec Visual Studio 2010 Beta 2), il y avait 3 places pour décorer le code.

  1. La classe ObjectContext
  2. Les classes d’entité
  3. Les classes complexType

Voici un extrait de mon modifié ObjectContext génération.

1
2
3
4
5
<span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">/// <summary></span> / / / <summary></span>
<span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">/// <#=SummaryComment(container)#></span> / / / <# = SummaryComment (conteneur) #></span>
<span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">/// </summary><#=LongDescriptionCommentElement(container, region.CurrentIndentLevel)#></span> / / / </ Summary> <# = LongDescriptionCommentElement (conteneur, region.CurrentIndentLevel) #></span>
<span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left">[global::System.CodeDom.Compiler.GeneratedCode("EdmxTool", "1.0.0.0")]</span> [Global :: System.CodeDom.Compiler.GeneratedCode ("EdmxTool", "1.0.0.0")]</span>
<span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : ObjectContext</span> <# = Accessibility.ForType (conteneur) #> classe partielle <# = code.Escape (conteneur) #>: ObjectContext</span>

Répétez cette procédure pour les 3 définitions de classes restantes à l’aide de la norme Trouvez … de dialogue. J’ai trouvé plus facile de rechercher le texte «partial class »

Étape 4

Ouvrez le concepteur EDMX et Ctrl + S pour enregistrer.

Si tout se passe correctement, le modèle T4 devrait lancer dans l’action et un nouveau fichier. Cs doit être créé. Ce fichier. Cs comprend le code réel généré en fonction de votre modèle et votre modèle EDMX T4. Comme toujours avec le code généré ne tentez pas de le modifier directement, car la prochaine fois que vous (ou quelqu’un d’autre) enregistre le fichier edmx il écrasera les modifications que vous avez apportées.

Enfin, un dernier avantage de tout cela est que vous pouvez faire des changements dans le modèle T4 de personnaliser totalement la façon dont vos entités sont générées à partir de maintenant.

Technorati Tags: ,

blog comments powered by Disqus

Ecrivez un Commentaire

Commenter Gravatar

Baydalugg |
EXO-CONTACTS |
Tatyanabelova |
Unblog.fr | Créer un blog | Annuaire | Signaler un abus | Svtsaintouen
| Yasmina29
| Merdealors