我正在尝试创建一个特定于五月域的DbContext,它的一个模型类完全由EF管理,另一个模型类被映射到一个数据库视图。为了确保EF不尝试创建这个已经存在的视图,我只将该视图添加到我的DbContext中,并运行以下命令:
Add-Migration InitialUnmanaged -IngoreChanges
这将创建一个带有空的向上和向下的迁移,这正是我想要的。我能够使用此迁移更新我的dev数据库,但是每当我尝试添加包含我的EF管理模型类的第二个迁移时,我就会得到一个错误。
Add-Migration Initial
无法生成显式迁移,因为以下显式迁移挂起: 201510151553565_InitialUnmanaged。在尝试生成新的显式迁移之前应用挂起的显式迁移。
问题是,我已经应用了显式迁移,并且可以在我的MigrationHistory表中看到它。
MigrationId 201510151553565_InitialUnmanaged
有人能帮我理解为什么会发生这种事,以及如何解决这个问题吗?
发布于 2015-10-15 18:01:11
我想出来了。
当我应用迁移时,它将迁移历史表置于与模型相同的默认模式中。但是,当我试图回滚它时,它是在连接用户的模式中寻找迁移历史记录。因为它不在那里,所以它认为数据库在0版。
我创建了一个OracleDbConfiguration类来指定一个自定义HistoryContext,它指定了迁移历史表的默认模式,并且在应用迁移之后,我能够像预期的那样回滚。
我验证了我能够重新创建我的初始步骤并让它们按预期工作,现在我已经显式地为迁移历史表指定了模式。
发布于 2015-10-15 17:12:33
要么删除迁移,要么只运行Update-Database使实体恢复同步。如果它是一个空迁移,您的数据库不会改变。
https://stackoverflow.com/questions/33153986
复制相似问题