¿Puedo cambiar el nombre del espacio de nombres de todo mi proyecto (incluidos, por supuesto, la clase DbContext, las clases de configuración de migraciones, etc.) sin romper nada o tener que volver a crear todas mis migraciones?
Digamos, tengo Project MyProject, cuyo espacio de nombres es
Foo.MyProjectY mis clases de configuración están en
Foo.MyProject.MigrationsDigamos que quiero cambiar el nombre del espacio de nombres Foo para Bar y, por supuesto, mi espacio de nombres Configuraciones ahora será
Bar.MyProject.Configurations¿Hay alguna forma correcta de hacer esto y mantener todas mis migraciones actuales en funcionamiento? ¿Estas formas implican editar manualmente la tabla ___MigrationHistory o algo así? (de un vistazo veo la columna ContextKey, que sospecho que debería editar manualmente).
Sí, de hecho necesita actualizar ContextKey en la tabla __MigrationHistory. Código:
UPDATE [dbo].[__MigrationHistory] SET [ContextKey] = 'New_Namespace.Migrations.Configuration' WHERE [ContextKey] = 'Old_Namespace.Migrations.Configuration'Una buena lectura sobre el tema de renombrar espacios de nombres con EF6: