Il m’est possible de renommer l’espace de noms de l’ensemble de mon projet (y compris bien sûr: classe DbContext, classes de configuration Migrations, etc.) sans rien casser ni recréer toutes mes migrations?
Dis, j’ai le projet MyProject, qui est l’espace de noms
Foo.MyProject
Et mes classes de configuration sont en
Foo.MyProject.Migrations
Dites que je veux renommer l’espace de noms Foo pour Bar , et bien sûr mon espace de noms Configurations sera maintenant
Bar.MyProject.Configurations
Existe-t-il un moyen correct de le faire et de maintenir toutes mes migrations actuelles toujours actives? Ces méthodes impliquent-elles d’éditer manuellement la table ___MigrationHistory ou quelque chose de ce genre? (En un coup d’œil, je vois la colonne ContextKey, que je pense devoir modifier manuellement.)
Oui, vous devez effectivement mettre à jour la ContextKey dans la table __MigrationHistory. Code:
UPDATE [dbo].[__MigrationHistory] SET [ContextKey] = 'New_Namespace.Migrations.Configuration' WHERE [ContextKey] = 'Old_Namespace.Migrations.Configuration'
Une bonne lecture sur le sujet du changement de nom d’espaces de noms avec EF6: