C# 使用-IgnoreChanges创建的实体框架6更新数据库迁移失败
我试图创建一个特定于may域的DbContext,其中一个模型类完全由EF管理,另一个模型类映射到数据库视图。为了确保EF不会尝试创建这个已经存在的视图,我只将该视图添加到我的DbContext中,并运行以下命令:C# 使用-IgnoreChanges创建的实体框架6更新数据库迁移失败,c#,entity-framework,entity-framework-6,entity-framework-migrations,C#,Entity Framework,Entity Framework 6,Entity Framework Migrations,我试图创建一个特定于may域的DbContext,其中一个模型类完全由EF管理,另一个模型类映射到数据库视图。为了确保EF不会尝试创建这个已经存在的视图,我只将该视图添加到我的DbContext中,并运行以下命令: Add-Migration InitialUnmanaged -IngoreChanges 这将创建一个上下空的迁移,这正是我想要的。我可以使用此迁移更新我的dev数据库,但每当我尝试添加包含EF托管模型类的第二次迁移时,就会出现错误 Add-Migration Initial
Add-Migration InitialUnmanaged -IngoreChanges
这将创建一个上下空的迁移,这正是我想要的。我可以使用此迁移更新我的dev数据库,但每当我尝试添加包含EF托管模型类的第二次迁移时,就会出现错误
Add-Migration Initial
无法生成显式迁移,因为以下显式迁移处于挂起状态:[201510151553565\u InitialUnmanaged]。在尝试生成新的显式迁移之前,应用挂起的显式迁移
问题是,我已经应用了显式迁移,我可以在MigrationHistory表中看到它
迁移ID
201510151553565_初始值未管理
有人能帮我理解为什么会发生这种情况以及如何解决它吗?删除迁移,或者只运行更新数据库以使实体恢复同步。如果是空迁移,则数据库不会更改 我知道了 当我应用迁移时,它将迁移历史表放在与模型相同的默认模式中。然而,当我试图回滚它时,它正在连接用户的模式中查找迁移历史。因为它不在那里,所以它认为数据库的版本为0 我创建了一个OracleDbConfiguration类来指定一个自定义HistoryContext,该类指定迁移历史表的默认模式,并且我能够在应用迁移后按预期回滚
我验证了我能够重新创建初始步骤并使它们按预期工作,因为我正在显式指定迁移历史记录表的架构。尝试从表中删除迁移并再次运行第一次迁移。是否运行update database?这将改变db端的模型。发生了一些非常奇怪的事情。当我重置所有内容并使我的初始迁移包含所有内容时,我可以很好地更新数据库,但当我尝试回滚时,它失败了。更新数据库-目标:0给出一个错误,表示目标数据库已处于版本0。@SteveGreene,是。我可以使用此迁移更新我的dev数据库,但每当我尝试添加第二次迁移时,都会出现错误。请尝试使用显式连接字符串[-ConnectionStringName]进行更新,谢谢。在您的回答和您在(这个问题)[上留下的注释之间,我能够使用EF for ODP.NET解决您上面概述的相同问题。