0

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

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

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

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

4

1 回答 1

0

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

Configuration configuration = new Configuration();
DbMigrator migrator = new DbMigrator(configuration);
migrator.Update();
Database.SetInitializer<DbContext>(null);
于 2012-06-04T20:10:03.140 回答