0

我有一个包含架构和数据的现有开发数据库。我使用 microsoft 实用程序(即 CodeFirst 类)创建了这些类。然后我启用了迁移。

现在我对 -IgnoreChanges 的行为感到困惑。如果初始迁移没有 Up() 和 Down() 逻辑,那么当我部署到 prod db 时会发生什么?

EF 是否只是忽略所有迁移并直接从模型中从头开始构建?

如果我不输入 -IgnoreChanges,那么所有的 Up() 和 Down() 逻辑都在那里。但是在更新数据库时,它会抛出一个关于已经存在的同名表的异常。

我正在使用 EF 5 RC。

4

1 回答 1

1

IgnoreChanges适用于您拥有现有应用程序(在 dev 和 prod 中)并且想要开始使用迁移的场景。IgnoreChanges简化向现有数据库添加初始迁移。如果您处于不存在生产数据库的情况下,则不能使用忽略更改。

对于您的情况,最直接的选择是从现有数据库创建实体,并继续处理由您从这些实体迁移创建的另一个数据库,因为您需要在Up方法(和Down方法)中为所有这些实体创建表。

于 2012-07-26T08:09:18.987 回答