2

当然,EF 会将最新的迁移存储到 MigrationHistory 表中,以确定是否已经执行了特定的迁移。

我的问题是关于 EF 正在做什么来防止同时执行相同的迁移。假设您有两个使用相同数据库在不同应用程序域下运行的应用程序。两个应用程序同时启动,因此都开始迁移到最新的数据库迁移。假设MigrateDatabaseToLatestVersion设置为初始化器。

我认为最后开始的迁移失败导致第一次执行的迁移刚刚更新了 MigrationHistory 表。EF 是否在这里依赖 SQL 事务来回滚为时已晚的迁移?还是它使用更智能的机制来阻止执行第二次迁移?

4

1 回答 1

0

尽管一些迁移步骤在单独的事务中逐个运行,但情况并不简单。不仅两个(或更多)迁移步骤,而且迁移步骤和正常程序运行都会干扰。

链接:有点旧,但很有用

更新:想法可能在这里:

于 2013-09-09T21:13:29.203 回答