asp.net代码首先自动更新数据库

时间:2012-06-03 22:39:16

标签: database frameworks entity

我正在使用Code First Entity Framework在C#Asp.net中创建一个应用程序,该框架将为不同的客户使用不同的数据库(换句话说,每个客户都有自己的数据库,将在首次使用时生成)。 / p>

我试图找到一种方法来在我对对象应用更改时自动更新所有这些数据库。换句话说,我将如何在Code First EF中使用cleanstep系统?

  • 目前我正在使用InitializerIfModelChange定义一个简单的数据库,允许我在发生架构更改时测试我的应用程序。但是,此方法会丢弃数据库,这在客户数据库中显然是不可接受的。
  • 我必须承担数百名客户,因此不能手动更新所有数据库
  • 我不介意编写将数据复制到新数据库的代码。

我认为最好的解决方案是以某种方式备份数据库,然后将所有数据重新插入新创建的数据库中。更好的方法是在不删除数据库的情况下自动更新架构。但是我不知道如何处理这个问题。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

Joakim发布的链接很有帮助。它要求您更新到EF 4.3.1(如果有的话,不要忘记在其他项目中的引用),之后您可以运行启用迁移的命令。要从代码中自动更新架构,您可以使用

Configuration configuration = new Configuration();
DbMigrator migrator = new DbMigrator(configuration);
migrator.Update();
Database.SetInitializer<DbContext>(null);