entity-framework - migrations - entity framework database first español
¿Cómo uso Entity Framework en el modo Code First Drop-Create? (2)
Estoy usando Entity Framework v4. He seguido las instrucciones en el tutorial de Nerd Dinner . Actualmente estoy en modo de desarrollo (no lanzado a entornos más avanzados) y me gustaría que las tablas se recreasen en cada nueva implementación, ya que los modelos aún son muy volátiles y no me interesa retener los datos. Sin embargo, esto no ocurre. Las tablas no se crean / modifican ni sucede nada con la base de datos. Si cambio a un modelo de migraciones utilizando los comandos de Package Manager: enable-migrations, add-migration (initial), esto funciona y usa mis migraciones. Sin embargo, dado que aún no quiero tener migraciones granulares y solo quiero mi script de creación inicial, me veo obligado a eliminar la carpeta de migraciones, rehacer los comandos (enable-migrations, add-migration) y eliminar la base de datos manualmente, cada vez Yo cambio cualquier cosa
¿Cómo consigo primero que ocurra el comportamiento drop / create del código?
Si la base de datos ya existe y desea realizar cambios en su modelo, use DropCreateDatabaseIfModelChanges<YourContextName>
Use el inicializador DropCreateDatabaseAlways para su base de datos. Siempre recreará la base de datos durante el primer uso del contexto en el dominio de la aplicación:
Database.SetInitializer(new DropCreateDatabaseAlways<YourContextName>());
En realidad, si desea sembrar su base de datos, cree su propio inicializador, que se heredará de DropCreateDatabaseAlways
:
public class MyInitializer : DropCreateDatabaseAlways<YourContextName>
{
protected override void Seed(MagnateContext context)
{
// seed database here
}
}
Y configúralo antes del primer uso del contexto
Database.SetInitializer(new MyInitializer());