我有一个使用 Code First 范例创建的 MVC3 项目,它可以工作。我创建了一个从 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; }
}