visual update studio remove migrations framework force first existing enable code automatic entity-framework-6 asp.net-core

entity framework 6 - update - ¿Cómo habilitar migraciones(EF6) en un proyecto asp.net 5?



update-database force (4)

¿Por qué el administrador de paquetes piensa que Enable-Migrations no es válido aunque se haya hecho referencia a EF6?

Porque asumo y estoy bastante seguro de que los proyectos de ASP.NET 5 no invocan la instalación y desinstalación de scripts de PowerShell dentro de los paquetes que tiene el paquete EF 6 para agregar los comandos de migración a la consola del administrador de paquetes. Tu mejor suerte es intentar integrar la herramienta de línea de comandos (creo que se llama migrate.exe, no estoy seguro) dentro del paquete EF6 NuGet.

Creé un nuevo proyecto de biblioteca de clase (paquete) (antes de VS 2015, RC utilizó el nombre aún peor de la biblioteca de clases asp.net para representar la capa de datos. Solo para que quede claro, esta es la estructura de estilo de kproj más nueva.

Se agregó EF 6.1.3 a project.json. Actualmente solo está orientado a DNX451.

"dependencies": { "EntityFramework": "6.1.3" ,"Moq": "4.2.1502.911" },

Creando clases de modelos iniciales y usando un inicializador de base de datos AlwaysCreate todo funciona bien. Ahora necesito cambiar a las migraciones para utilizar Enable-Migrations en la consola del administrador de paquetes y obtuve:

Enable-Migrations : The term ''Enable-Migrations'' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + Enable-Migrations + ~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

Para las migraciones de EF7, el administrador de paquetes no es compatible con los comandos de migración. En su lugar, se ejecuta un nuevo comando ef a través de dnu, pero ese nuevo proceso es solo para EF7 y no para EF6, ¿verdad?

¿Por qué el administrador de paquetes piensa que Enable-Migrations no es válido aunque se haya hecho referencia a EF6?


Me las he arreglado para solucionar este problema creando un antiguo proyecto .csproj que funciona el comando Enable-Migrations. La única diferencia es que en lugar de tener una copia separada de los archivos, los he agregado todos por referencia, usando la opción "Agregar por enlace" cuando agrego un archivo existente.

Ahora puedo agregar migraciones, etc. y cambiar los archivos según sea necesario, y estos cambios se reflejarán automáticamente en mi .xproj, ya que son los mismos archivos.


EDIT para 1.0.0: Migrator.EF6 ahora es compatible con 1.0.0.

EDIT para RC2: Migrator.EF6 ahora es compatible con RC2.

Lo que necesitamos es una herramienta de línea de comandos dnx que envuelva EF6 y le delegue comandos. Eso es porque los proyectos de DNX no verán init.ps1 e install.ps1 que son necesarios para que Add-Migration funcione (al menos por ahora, vea esto ).

La implementación no es tan difícil, pero nadie parece haberle dado tiempo, así que terminé haciendo una.

Esta solución no requiere un .csproj separado, se .csproj el mismo flujo de trabajo, pero en lugar de Update-Database dnx ef database update y comandos similares.

Las instrucciones y muestras se pueden encontrar aquí: Migrator.EF6 .

Más adelante, probablemente en RTM, también podrá usarlos en proyectos DNX. Y esa es probablemente la razón por la cual Microsoft no ha hecho una para soportar migraciones de EF6.