Outil pour convertir Entity Framework EDMX en Code en premier

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

Il y a un gars sur les forums MSDN qui a écrit le sien (pas encore disponible), mais rien de L'équipe EF.

30
demandé sur Stephan Bauer 2011-09-07 16:23:27

4 réponses

Il n'y a pas un tel outil 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 mappage code-first à partir d'une base de données existante, mais cela ne créera qu'une image 1:1 de votre base de données = naming basé sur la base de données, pas d'héritage, pas de fractionnement, etc. Les outils électriques permettent également de créer EDMX en lecture seule à partir d'un mappage de code existant.

12
répondu Ladislav Mrnka 2011-09-07 13:27:52

Les temps changent. Il existe plusieurs générateurs qui créeront des entités et des mappages code first en utilisant EDMX comme source. Il y en a plusieurs dans la bibliothèque d'extensions. Celui que vous voudrez probablement utiliser est L'EF 5.X Dbcontextfluent générateur pour C#. http://visualstudiogallery.msdn.microsoft.com/5d663b99-ed3b-481d-b7bc-b947d2457e3c

Il y a aussi L'EF 5.X DbContect Generator qui IIRC met les informations de mappage sur les modèles.

Une fois que vous avez installé l'un ou l'autre, vous pouvez modifier L'EDMX et faire un clic droit "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 si vous les aviez dans le même dossier que votre edmx avec le même nom que l'entité, ils seraient sur écrit. Vous avez juste besoin de renommer ces partiels, puisque le générateur met le mot-clé partiel sur les entités, ou mieux encore, déplacer ce code dans les classes d'entités nouvellement générées.

Une fois que ces fichiers sont en place, vous pouvez supprimer les fichiers .tt et le .fichiers edmx et à l'avenir, vous maintenez vos entités dans le code.

27
répondu PilotBob 2013-02-14 19:33:39

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

entrez la description de l'image ici

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

Cela ne convertit pas un EDMX en code en premier (comme demandé en question), mais il peut d'abord créer du code à partir d'une base de données existante (ce que je suppose que quelqu'un voulait pour ce faire à partir D'EDMX, aurait une base de données existante, sauf s'ils ont supprimé leur base de données).

25
répondu DermFrench 2014-12-16 14:45:09