1

我有一个使用 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; }

}
4

1 回答 1

1

检查代码优先迁移和EF 4.3 beta,其中MigrateDatabaseToLatestVersion初始化程序支持数据库升级。尚无 RTM 版本支持此功能。

于 2012-01-20T13:00:51.877 回答