EntityFramework 7 (EF7) Migraciones. DbContext y StartUp Project están en diferentes ensamblajes

asp.net-core-mvc entity-framework-core

Pregunta

Estoy tratando de usar migraciones en EF7 con entityframework.commands. Pero mi DbContext está en un ensamblaje diferente con un proyecto de Inicio (asp.net mvc es un proyecto de inicio y Core.Implementation tiene un DbContex).

dnx migración de ef agregar MyMigration -c MyContext

System.InvalidOperationException: No se encontró DbContext llamado 'MyContext'.

He intentado usar el espacio de nombres para apuntar a otro conjunto pero tampoco funcionó. ¿Es posible en absoluto? ¿O simplemente tengo que poner mi contexto en ensamblador donde está el comando ef7?

Respuesta aceptada

Por temas # 639 , # 2256 , # 2293 , # 2294 , # 2357 , # 2553 y # 2748 , tenemos un poco de trabajo que hacer en esa área. :-)


Respuesta popular

EDITAR

Desde 1.0.0-rc1-final (quizás antes) este trabajo es innecesario

  • Ahora no necesita App.DataAccess/Startup.cs (simplemente elimínelo si usó la solución a continuación)
  • Usted crea / ejecuta migraciones desde su proyecto principal (en este caso, App.Web )
  • Sin embargo, debe especificar el proyecto ( -p paramater) que contiene migraciones:

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess

Si tiene múltiples contextos de base de datos, también tiene que especificar cuál usar (parámetro -c )

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess

Fin de edición

Descubrí una solución para eso

Supongamos que tiene 2 proyectos: App.Web y App.DataAccess

Puedes agregar una clase de inicio muy básica a tu App.DataAccess :

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess

La clase de inicio simple ( App.DataAccess\Startup.cs ):

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess

A continuación, modifique su project.json en App.DataAccess ( App.DataAccess/project.json ):

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess

Todo lo que tienes que hacer es ir a App.DataAccess y usar dnx ef :

cd App.Web
dnx ef migrations add NewMigration -p App.DataAccess



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué