Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用-IgnoreChanges创建的实体框架6更新数据库迁移失败_C#_Entity Framework_Entity Framework 6_Entity Framework Migrations - Fatal编程技术网

C# 使用-IgnoreChanges创建的实体框架6更新数据库迁移失败

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

我试图创建一个特定于may域的DbContext,其中一个模型类完全由EF管理,另一个模型类映射到数据库视图。为了确保EF不会尝试创建这个已经存在的视图,我只将该视图添加到我的DbContext中,并运行以下命令:

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解决您上面概述的相同问题。