He estado jugando con Entity Framework 4, utilizando el enfoque basado en modelos para generar el script de base de datos desde mis entidades. Esto es genial, pero no estoy seguro de cómo funciona cuando se trata de versionar la base de datos. Supongo que si quisiera utilizar un marco de migración de tipo de registro activo, tendría que trabajar al revés y generar mis entidades desde mi base de datos. ¿Hay alguna forma de utilizar el enfoque impulsado por el modelo y la versión de la base de datos correctamente?Migraciones de bases de datos para Entity Framework 4
Respuesta
Esto vendrá pronto como un paquete NuGet llamados EntityFramework.Migrations
Una demostración se realizó por Scott Hanselman en TechEd 2011 (disponible en línea en http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DEV349). La sección correspondiente es de 45 minutos en
En resumen, una vez que se instala el paquete, usted entrará en la siguiente en la consola de Administrador de paquetes para generar una secuencia de comandos de cambio de base de datos:.
migrate -script
ACTUALIZACIÓN (13 -Nov-2011)
La versión alpha 3 de este paquete ya está disponible en NuGet. En lugar de utilizar el cmdlet migrate -script
mencionado anteriormente, utiliza el cmdlet Add-Migration <migrationname>
. Un walk-through of its use se puede encontrar en el blog del equipo ADO.NET.
UPDATE (14-Feb-2012)
Esta funcionalidad está ahora disponible como parte de la principal EntityFramework NuGet package, comenzando con la versión 4.3. Puede encontrar un updated walk-through usando EF 4.3 en el blog del equipo ADO.NET.
+1 para actualizar – Karsten
Bueno, si quieres trabajar como ActiveRecord, entonces necesitas trabajar como ActiveRecord. :)
Sin embargo, si desea utilizar el modelo primero pero aún usar migraciones, esto será posible, pero requerirá trabajo adicional en su nombre. Model-first generará un script de cambio de base de datos. Deberá extraer las partes relevantes en las migraciones, así como escribir manualmente las secuencias de comandos de deshacer. Aunque esto implica un poco de trabajo manual, no me parece tan terriblemente difícil.
ScottGu menciona algo acerca de esto en un blog entry:
También vamos a estar apoyando una característica de “migraciones” con EF en el futuro que le permitirá automatizar/migraciones guión de esquema de base de datos mediante programación.
[EDIT]
Creo que podría estar refiriéndose a la Entity Designer Database Generation Power Pack, como respondida por Morteza Manavi en another SO answer.
Estoy trabajando en una alternativa a la biblioteca EF.Migrations - EntityFramework.SchemaCompare. Permite comparar físicamente un esquema db con un modelo de entidades que representa el contexto de la base de datos (EF.Migrations no lo hace). Esto puede activarse durante la inicialización de la base de datos o manualmente a petición.Consideremos el siguiente ejemplo
#if DEBUG
Database.SetInitializer(new CheckCompatibilityWithModel<DatabaseContext>());
#endif
Se producirá una excepción durante la inicialización de la base de datos que describe las diferencias entre el esquema y el modelo db si se encuentran problemas de incompatibilidad. Alternativamente, usted puede encontrar esas diferencias en cualquier momento en su código de esta manera
using (var ctx = new DatabaseContext())
{
var issues = ctx.Database.FindCompatibilityIssues();
}
luego tener esas diferencias/problemas de incompatibilidad en las manos la posibilidad de actualizar el esquema de db o el modelo.
Este enfoque es particularmente útil cuando necesita un control completo sobre el esquema de la base de datos y el diseño del modelo y/o trabaja en un equipo donde varios miembros del equipo trabajan en el mismo esquema y modelo db. También se puede usar además de EF.Migrations.
Tenedor mí en GitHub: https://github.com/kriasoft/data
- 1. Bases de datos compatibles con Entity Framework
- 2. Entity Framework 4.3 Migraciones mover datos existentes
- 3. Entity Framework y bases de datos multilingües
- 4. Manejo de las migraciones de bases de datos cuando se utiliza Entity Framework
- 5. Entity Framework 4 - Herencia
- 6. Asociar tablas de diferentes bases de datos - Entity Framework
- 7. Entity Framework 4 Repository?
- 8. Primer uso de bases de datos en Entity Framework
- 9. ¿Migraciones de bases de datos tipo riel?
- 10. Hacer un palmo Entity Framework Modelo múltiples bases de datos
- 11. ADO.Net Entity Framework en múltiples bases de datos
- 12. Alternativa SqlMetal para Entity Framework 4
- 13. Entity framework 4 o DataSet?
- 14. Cómo implementar IDbContextFactory para su uso con las migraciones de datos de Entity Framework
- 15. Entity Framework 4 y WPF
- 16. Entity framework 4 y base de datos múltiple
- 17. Migraciones de Entity Framework: Timeout SqlException durante la migración
- 18. El uso de Entity Framework para copiar bases de datos de entidades entre
- 19. Entity Framework - Comenzar de nuevo - Deshacer/Revertir todas las migraciones
- 20. Entity Framework 4: Selección de registro único
- 21. Sin creación inicial con migraciones de Entity Framework
- 22. Entity Framework 4, heredando vs extendiendo?
- 23. Membresía Asp.Net - Proveedores en Entity Framework 4
- 24. Creando propiedades blob con Entity Framework 4?
- 25. Claves únicas en Entity Framework 4
- 26. Entity Framework 4 y valores predeterminados
- 27. Entity Framework 4 POCO con diccionario
- 28. Primer código de Entity Framework 4 - Impedir DB Drop/Create
- 29. ¿Cómo pruebo las migraciones de bases de datos?
- 30. Meteor cómo realizar migraciones de bases de datos?
Microsoft está trabajando activamente en esta función de Entity Framework, se puede leer sobre ello en el blog del equipo de ADO.NET como los mensajes Código primeras migraciones. http://blogs.msdn.com/b/adonet/ –