33 votes

Outil pour convertir Entity Framework EDMX en Code First

Existe-t-il un outil pour convertir un edmx en code-first ? Je sais qu'il a été question d'un tel outil dans un CTP il y a quelque temps, mais je n'ai trouvé aucune mise à jour à ce sujet.

Il y a un gars sur le Forums MSDN qui a écrit le sien (pas encore disponible), mais rien de la part de l'équipe EF.

31voto

DermFrench Points 879

Avec EF6 Tools et Visual Studio 2013 ou Visual Studio 2012, vous obtenez d'abord le code de l'option à partir de la base de données (voir la capture d'écran ci-dessous).

enter image description here

Si vous ne voyez pas cette option, vous devez installer Entity Framework 6 Tools for Visual Studio 2012 & 2013. http://www.microsoft.com/en-gb/download/details.aspx?id=40762

Cela ne convertit pas un EDMX en code premier (comme demandé dans la question), mais cela peut créer du code premier à partir d'une base de données existante (je suppose que quelqu'un qui voudrait faire cela à partir d'un EDMX aurait une base de données existante, à moins qu'il n'ait supprimé sa base de données).

27voto

PilotBob Points 1209

Les temps changent. Il existe plusieurs générateurs qui créent des entités et des mappings en code first en utilisant l'EDMX comme source. Il y en a plusieurs dans la bibliothèque d'extensions. Celui que vous voudrez probablement utiliser est le EF 5.x DBContextFluent Generator for C#. http://visualstudiogallery.msdn.microsoft.com/5d663b99-ed3b-481d-b7bc-b947d2457e3c

Il y a aussi le générateur EF 5.x DbContect qui, je crois, met les informations de mapping sur les modèles.

Une fois que vous avez installé l'un ou l'autre de ces éléments, vous pouvez éditer l'EDMX et cliquer avec le bouton droit de la souris sur "Ajouter un élément de génération de code". Cela installera les modèles .tt et générera la classe d'entité, la classe DbContext et les fichiers de mappage.

Sachez que si vous avez des partiels avec validation et qu'ils se trouvent dans le même dossier que votre edmx et qu'ils portent le même nom que l'entité, ils seront écrasés. Il vous suffit de renommer ces partiels, puisque le générateur met le mot-clé partiel sur les entités, ou mieux encore, de déplacer ce code dans les classes d'entités nouvellement générées.

Une fois ces fichiers en place, vous pouvez supprimer les fichiers .tt et .edmx et continuer à gérer vos entités dans le code.

9voto

Ladislav Mrnka Points 218632

Il n'existe pas d'outil de ce type car EDMX offre beaucoup plus de fonctionnalités qui ne peuvent pas être traduites en code-first. Les seuls outils disponibles sont EF Power Tools CTP1 qui permettent de créer un mapping code-first à partir d'une base de données existante, mais qui ne créent qu'une image 1:1 de votre base de données = dénomination basée sur la base de données, pas d'héritage, pas de division, etc. Power tools permet également de créer des EDMX en lecture seule à partir d'un mappage code-first existant.

0voto

dav_i Points 6206

Depuis le 30 janvier 2013, EF Power Tools (Beta 3) est la dernière version d'EF Power Tools et fonctionne avec EF4.2-EF6.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X