Entity framework EF代码优先:迁移在不同代码版本上初始化的数据库

Entity framework EF代码优先:迁移在不同代码版本上初始化的数据库,entity-framework,Entity Framework,我使用的是EntityFramework5RC,代码优先。我正在努力迁移在不同版本的代码上创建的数据库。例如,数据库A是在表FooBar不存在时创建的。数据库B是在表FooBar添加到我的模型后创建的 我编写了一个迁移,添加了FooBar表。在调用CreateTable之前,我是否有责任在FooBar迁移中检查表是否不存在?看起来是这样的,因为数据库B没有用于FooBar迁移的条目,并且将尝试运行它 起初,MigrationHistory表似乎可以避免我添加这些检查,但由于新数据库在创建数据库之

我使用的是EntityFramework5RC,代码优先。我正在努力迁移在不同版本的代码上创建的数据库。例如,数据库A是在表FooBar不存在时创建的。数据库B是在表FooBar添加到我的模型后创建的

我编写了一个迁移,添加了FooBar表。在调用CreateTable之前,我是否有责任在FooBar迁移中检查表是否不存在?看起来是这样的,因为数据库B没有用于FooBar迁移的条目,并且将尝试运行它


起初,MigrationHistory表似乎可以避免我添加这些检查,但由于新数据库在创建数据库之前不会添加迁移条目,因此我仍然需要自己进行检查。这是正确的方法还是我遗漏了什么?

为了解决我在添加存储过程时遇到的问题,我编写了一个TSQL脚本来创建一个新表“\u PreviousMigrationHistory”-它在我的存储过程脚本运行后从“\u MigrationHistory”表接收新条目

我确实在两个表中添加了一个新列(“VersionId”,INT-IDENTITY(1,1))这是我在代码中用于比较的

这样,即使在发生代码优先迁移之后,您也可以使用未更新的迁移模式(“PreviousMigrationHistory”)

这有帮助吗

**编辑-对不起,我没读到问题。-尽管我认为数据库的新实例仍然会经历迁移步骤,而迁移步骤又会将条目添加到_MigrationHistory表中