如何在不丢失数据的情况下将表(更改数据模型)添加到EF4上下文中
本文关键字:数据模型 添加 上下文 EF4 数据 情况下 | 更新日期: 2023-09-27 18:20:58
我有一个使用代码优先范式创建的MVC3项目,它很有效。我创建了一个从DBContext继承的模型,我可以向表和所有这些内容写入。我需要添加新表并更改我的模型,我使用DropCreateDatabaseIfModelChanges<T>
。但是,我丢失了所有数据,由于EF4将丢弃并创建新的DB。
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; }
}
检查代码优先迁移和EF 4.3测试版,其中MigrateDatabaseToLatestVersion
初始值设定项支持数据库升级。没有RTM版本支持这一点。