EF 应用所有迁移,而不仅仅是新迁移
EF Applies All Migrations, Not Just New One
我正在使用 EF 6,当我 运行 Update-Database
它试图应用自项目开始以来的每一次迁移,即使只有新的迁移。
如果我尝试创建空迁移,我会收到一条错误消息,提示我无法创建新迁移,因为有待处理的显式迁移。
我发现有类似问题的唯一博客 post 建议删除 __MigrationHistory
table 并执行 Update-Database -Script
,去除所有实际的数据库更改,但保留Create __MigrationHistory
和 Migration Inserts
。我没有删除 table,但我确实重命名了它,但这并没有解决我的问题。
看起来像重复的,但是当我 运行 脚本时,我看到我的上下文键没有改变,所以这不是我的问题。
奇怪的是我在我的模型中添加了一列,然后 add-migration
没有问题。然后我去吃午饭(但没有做 update-database
),然后午饭后我决定在我的模型中添加另一列,当我再次做 add-migration -force
时,这个错误开始了。我已经完全回滚我的工作区(完全删除工作区并从我的机器中删除所有代码),但问题仍然存在。
我在一个团队环境中,但我们每个人都使用自己的开发数据库,并且我已经验证了我的迁移 App.Config 文件中的连接字符串是正确的。
我 运行 SQL Profiler 在 Update-Database -Script
命令期间,运行 以下查询 24 次后放弃(12 批 2):
IF db_id(N'ISEPDBContexts.AdministratorDb') IS NOT NULL SELECT 1 ELSE SELECT Count(*) FROM sys.databases WHERE [name]=N'ISEPDBContexts.AdministratorDb'
这很奇怪,因为那是我的连接字符串的名称,而不是数据库的名称。
原来问题是包管理器控制台没有查看我的配置文件,所以快速搜索后我发现您不仅必须在 PMC 中设置默认项目(我正在这样做),而且该解决方案必须选择与启动项目相同的项目。 ()
我正在使用 EF 6,当我 运行 Update-Database
它试图应用自项目开始以来的每一次迁移,即使只有新的迁移。
如果我尝试创建空迁移,我会收到一条错误消息,提示我无法创建新迁移,因为有待处理的显式迁移。
我发现有类似问题的唯一博客 post 建议删除 __MigrationHistory
table 并执行 Update-Database -Script
,去除所有实际的数据库更改,但保留Create __MigrationHistory
和 Migration Inserts
。我没有删除 table,但我确实重命名了它,但这并没有解决我的问题。
奇怪的是我在我的模型中添加了一列,然后 add-migration
没有问题。然后我去吃午饭(但没有做 update-database
),然后午饭后我决定在我的模型中添加另一列,当我再次做 add-migration -force
时,这个错误开始了。我已经完全回滚我的工作区(完全删除工作区并从我的机器中删除所有代码),但问题仍然存在。
我在一个团队环境中,但我们每个人都使用自己的开发数据库,并且我已经验证了我的迁移 App.Config 文件中的连接字符串是正确的。
我 运行 SQL Profiler 在 Update-Database -Script
命令期间,运行 以下查询 24 次后放弃(12 批 2):
IF db_id(N'ISEPDBContexts.AdministratorDb') IS NOT NULL SELECT 1 ELSE SELECT Count(*) FROM sys.databases WHERE [name]=N'ISEPDBContexts.AdministratorDb'
这很奇怪,因为那是我的连接字符串的名称,而不是数据库的名称。
原来问题是包管理器控制台没有查看我的配置文件,所以快速搜索后我发现您不仅必须在 PMC 中设置默认项目(我正在这样做),而且该解决方案必须选择与启动项目相同的项目。 (