Question

Existe-t-il un moyen de reprendre le générateur de classe Entity Framework ?Je veux pouvoir avoir mon propre constructeur de classes afin de pouvoir créer certaines propriétés pour appeler d'autres méthodes lors de la matérialisation ou rendre les classes d'entités partielles.

Était-ce utile?

La solution

En fait, ils sont déjà dans des classes partielles.Voir MSDN

Autres conseils

System.Data.Entity.Design.EntityClassGenerator, est le type utilisé dans VS pour générer la couche d'objet à partir de votre fichier .edmx, et c'est le type utilisé par EdmGen.exe pour générer la couche d'objet à partir d'un fichier .csdl.Ci-dessous, j'ai répertorié les 3 façons dont vous pouvez affecter le code généré.La 3ème option nécessite que vous appeliez vous-même EntityClassGenerator.Vous pouvez faire exécuter votre code automatiquement dans VS un peu comme un SingleFileGenerator en en utilisant cette technique présenté par Sanjay.

  1. Ajoutez du code aux types via cours partiels
  2. Ajouter du code au méthodes partielles qui sont appelés par les classes générées
  3. Accrochez le événements de génération de code pour injecter du code directement dans les propriétés et les types au fur et à mesure de leur génération.Voir celui de Danny article de blog à titre d'exemple

J'ajouterai que non seulement vous pouvez ajouter votre propre classe cours partiels à ceux émis par Entity Framework, mais vous pouvez également écrire tous les méthodes partielles créé par le code généré.

C'EST À DIRE.Il y aura beaucoup de code de méthode partielle qui sera appelé, mais la méthode elle-même dans le code généré n'est pas vraiment implémentée.Pour cela, vous pouvez écrire une méthode partielle pour détecter les événements lorsque les propriétés changent, etc.Ce n'est pas une mauvaise façon de gérer certaines règles métier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top