Come aggiungere una tabella (modificare il modello di dati) nel contesto EF4 senza perdere i dati

StackOverflow https://stackoverflow.com/questions/8941256

Domanda

Ho un progetto MVC3 che ho creato utilizzando il Codice First Paradigm e funziona. Ho creato un modello ereditando da DBContext e posso scrivere sul tavolo e tutto il resto. Devo aggiungere una nuova tabella e cambiare il mio modello e io uso DropCreateDatabaseIfModelChanges<T> Ma perdo tutti i miei dati, a causa di EF4 eliminerà il nuovo DB.

public class MyDbInitializer : DropCreateDatabaseIfModelChanges< MyDb >

Posso usare interfaccia diversa come UpdateDatabaseIfModelChanges<T> Se esiste?

Il mio modello sembra questo:

[Table("Person")]

public class Person
{
    public int ID { get; set; }
    public string name { get; set; }
    public string country { get; set; }
    public string gender { get; set; }
}

public class MyDb: DbContext
{
    public DbSet<Person> People { get; set; }
}

Quindi chiamo:

Database.SetInitializer(new MyDbInitializer ());


public class MyDbInitializer : DropCreateDatabaseIfModelChanges< MyDb >

    {
        protected override void Seed(MyDb context)

E questo voglio creare:

[Table("Person")]

public class Person
{
    public int ID { get; set; }
    public string name { get; set; }
    public string country { get; set; }
    public string gender { get; set; }
}
[Table("NewTable")]

public class NewTable
{
    public int ID { get; set; }
    public string name { get; set; }
    public string position { get; set; }
    public string description { get; set; }
}


public class MyDb: DbContext
{
    public DbSet<Person> People { get; set; }
    public DbSet< NewTable > NewTable { get; set; }

}

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top