У меня есть проект MVC3, который я создал с использованием парадигмы Code First, и он работает. Я создал модель, наследующую от DBContext, и я могу записать в таблицу и все такое. Мне нужно добавить новую таблицу и изменить свою модель, и я использую DropCreateDatabaseIfModelChanges<T>
Но я теряю все свои данные, потому что EF4 покончит с созданием новой БД.
public class MyDbInitializer : DropCreateDatabaseIfModelChanges< MyDb >
Могу ли я использовать другой интерфейс, например UpdateDatabaseIfModelChanges<T>
, если таковой существует?
Моя модель выглядит так:
[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; }
}
Тогда я звоню:
Database.SetInitializer(new MyDbInitializer ());
public class MyDbInitializer : DropCreateDatabaseIfModelChanges< MyDb >
{
protected override void Seed(MyDb context)
И это я хочу создать:
[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; }
}