El último paquete First Code First NuGet viene con una implementación personalizada de IDatabaseInitializer
llamada DontDropDbJustCreateTablesIfModelChanged
. Como su nombre lo indica, cuando se detecta un cambio de modelo, no se cae y se recrea toda la base de datos, simplemente suelte y vuelva a crear las tablas.Estrategia de inicialización personalizada para el código EF Primero que no se quitan tablas para agregar una columna
Decir que tengo esta clase de modelo:
public class User
{
public string Username { get; set; }
// This property is new; the model has changed!
public string OpenID { get; set; }
}
Cómo uno va sobre cómo implementar un IDatabaseInitializer
que no cae ninguna tabla o bien. En este caso, solo agregaría una columna OpenID
a la tabla de Usuario?
Sí, fue más un ataque de curiosidad, ya que todas las implementaciones de IDatabaseInitializer disponibles optaron por un enfoque más "destructivo" :) Gracias –
@Sergi Papaseit: Esto es muy interesante. ¿Lo tomaste más? Una de las cosas que deseo implementar en el código de EF 4.1 primero es la base de datos Migraciones. Creo que lo que presentó Ladislav arriba podría ser realmente útil si fuera elaborado y de alguna manera automatizado. Entonces, si has profundizado en esto, por favor, compártelo con nosotros :) – Kassem
@Kassem - En realidad no lo he hecho. Alguien me hizo una muy buena observación aquí en SO, diciendo que esto, por supuesto, solo está pensado para entornos de desarrollo, así que no debería molestarse en dejar caer el db cada vez ... ¡Pero dígame si lo hace! ;) –