Code EF en premier - nom de contrainte de clé étrangère personnalisée
Je me demande si il n'y a aucune chance de changer le nom de la clé étrangère contrainte générées par Entity Framework lors de l'utilisation de code de la première.
J'ai deux entités - User
et Group
- à plusieurs-à-plusieurs relation si il y a une table d'association GroupUser
. Malheureusement, la génération automatique des contraintes de clés étrangères sont nommés FK_dbo.GroupUser_dbo.User_User_UserId
et FK_dbo.GroupUser_dbo.Group_Group_GroupId
.
Je voudrais avoir les contraintes de clé étrangère appelé comme FK_GroupUser_UserId
et FK_GroupUser_GroupId
. Qui ressemble beaucoup plus clair pour moi.
source d'informationauteur MrHenkey | 2013-07-29
Vous devez vous connecter pour publier un commentaire.
Il n'est pas possible de personnaliser la contrainte de clé étrangère nom avec des annotations de données ou
DbModelBuilder
API Fluent. Toutefois, vous pouvez contrôler le nom de code basé sur les migrations.Première option: Lorsque les tables sont créées par les migrations:
La migration de code est automatiquement généré pour la table de jointure devrait ressembler à ceci:
Ici, vous pouvez modifier les deux
ForeignKey
les appels de méthode pour personnaliser le nom de la contrainte avant d'appelerupdate-database
:Deuxième option: Lorsque les tables existent déjà, vous pouvez supprimer la contrainte et ajouter une nouvelle renommé un dans un de la migration:
Vous pouvez mettre en œuvre un sql personnalisé générateur de classe dérivée de
SqlServerMigrationSqlGenerator
deSystem.Data.Entity.SqlServer
Pour plus d'datail s'il vous plait voir la réponse