1

Pour quelques raisons je voudrais utiliser FluentAPI pour remplacer les conventions EF pour les définitions de champ générées. Par défaut, EF6 crée des annotations de données pour toutes les classes générées.Comment puis-je convertir Entity Framework 6 pour générer des définitions FluentAPI pour mon modèle, plutôt que des annotations de données? (J'utilise MySQL avec VS2015)

Existe-t-il un moyen automatisé de convertir ces annotations en FluentAPI ou d'obtenir EF pour créer des définitions FluentAPI au lieu d'utiliser des annotations de données?

+0

Avez-vous essayé le gabarit inverse EF? – ErikEJ

+0

Oui, EF Power Tools créera l'API pour vous (ainsi que les classes POCO). http://thedatafarm.com/data-access/installing-ef-power-tools-into-vs2015/ –

+0

Supprimé Merci avis –

Répondre

0

J'ai finalement obtenu ceci résolu et fonctionnant. (J'utilisais EF6 avec MySQL 5.1.76 et VS2015 mise à jour 3).

J'ai installé les powertools modifiés VSIX pour fonctionner avec VS2015 en suivant ceci: http://thedatafarm.com/data-access/installing-ef-power-tools-into-vs2015/ (merci @Steve). Cependant, en sélectionnant l'option 'Reverse engineering premier code' a échoué pour les raisons suivantes:

  1. Toutes les références aux versions de MySQL trouvée dans C: \ Windows \ Microsoft.NET \ Framework \ vx.x.xx \ config \ machine.config doit correspondre à la version de mySQL.Data.Entity.EF6 dans vos références de projet. (votre éditeur de texte doit être exécuté en mode admin pour enregistrer le fichier). Erreur: MySQL - Entity : The value for column 'IsPrimaryKey' in table 'TableDetails' is DBNull - Ceci a été résolu en suivant la réponse acceptée à ce message.

  2. Erreur: Visual Studio 2015 Update 2 breaks EF reverse code engineer vsix - Cela a été résolu en remettant à zéro le cadre cible 4.5.1

Maintenant, je peux sélectionner l'option « Reverse engineering premier code » et il fonctionne sans erreur, et mon modèle est créé avec succès avec les mappages FluentAPI comme je le voulais.

+0

En conséquence, Entity Framework Core utilise par défaut les mappages FluentAPI et a d'autres nouvelles fonctionnalités qui ne seront pas nécessairement portées sur EF6, donc c'est peut-être un bon choix si vous avez le choix. – Bandito