varios update término tipos reconoce nombre net mvc migrations migraciones han habilitar framework first ensamblado encontrado contexto como comandos code asp entity-framework ef-migrations

entity framework - update - Semilla de migración de secuencias de comandos EF de la clase de configuración



se han encontrado varios tipos de contexto en el ensamblado (3)

Tengo migraciones EF que funcionan muy bien, pero también quiero generar el script sql para los datos semilla de mi clase DbMigrationsConfiguration. Los datos de inicialización se ejecutan bien cuando hago Update-Database, pero cuando hago UpdateDatabase -Script no obtengo el sql para las inserciones de inicialización. Intenté -Verbose en una base de datos de actualización normal pero tampoco veo el resultado de las sentencias semilla allí.

es posible?


Otra solución / solución es hacer que SSMS genere el script para usted:

1) Comience con una base de datos limpia generada por su inicializador de base de datos y método de inicialización. Asegúrese de que los datos que desea incluir en el script estén allí.

2) Utilizando SSMS, haga clic con el botón derecho en la base de datos, vaya a Tareas> "Generar secuencias de comandos ..." y siga el asistente. En Opciones avanzadas, asegúrese de seleccionar "Solo datos" para "Tipos de datos a secuencia de comandos".

3) Desde el script generado, copie las declaraciones de semillas requeridas a su script de destino.


Sé que es un poco viejo, pero aquí hay una respuesta que podría ayudar a alguien más a buscar una respuesta.

Puede utilizar el Migrate.exe suministrado por Entity Framework. Esto le permitirá ejecutar el método Seed en el contexto de la base de datos.

Si necesita ejecutar un método Seed específico, puede colocarlo en un archivo de configuración de migración separado como este:

Enable-Migrations -MigrationsDirectory "Migrations/ContextA" -ContextTypeName MyProject.Models.ContextA

Mando:

Migrate.exe MyAssembly CustomConfig /startupConfigurationFile=”../web.config”

Búsquelo en el directorio de paquetes de NuGet: ".. / packages / EntityFramework.6.1.3 / tools"

Puede especificar la configuración de migración como un argumento para ello. El CustomConfig debe contener su método Seed basado en código. Por lo tanto, de esta manera no requiere que se generen scripts SQL a partir de la migración.

Más información aquí:

http://www.eidias.com/blog/2014/10/13/initialcreate-migration-and-why-is-it-important

http://www.gitshah.com/2014/06/how-to-run-entity-framework-migrations.html

Al usar esta solución, no necesita generar un script SQL y puede ejecutar múltiples Semillas para diferentes entornos.


No, no es posible. La clase de configuración no forma parte de la migración en sí misma, es una infraestructura que ejecuta la migración. Tiene una única clase de configuración para todas sus migraciones y su método Seed se ejecuta después de cada migración, incluso puede usar el contexto para la siembra de datos y, debido a esto, este método se ejecuta después de que se complete la migración = no puede ser parte de la migración. Sólo el contenido de la clase de migración es un script.