在我的MVC Web应用程序,我添加了一个名为model 竞争力,以现有的模式,并没有add-migration和update-database,它工作得很好,然后我创建了基于该模型的控制,这是确定.
但在那之后,我意识到出了问题,所以我用模型删除了控制器及其视图.我也从Server Explorer中删除了表,并创建了一个名为CompetencyLabel的新模型,然后运行add-migration,它工作正常,但是当我运行时update-database,我在PM> window中遇到了这个错误:
"找不到对象"dbo.Competencies",因为它不存在或者您没有权限."
该表已被删除,我不知道为什么它仍然会问我.有人知道如何使它工作吗?非常感谢.
Alf*_*Moh 17
当您查看上面的图像时,您意识到,Users表在开头和下一行重命名,生成一个SQL语句来删除Users表中的外键,但是删除到Entity Framework,即表(即Users表) )不再存在,所以它会抛出一个错误.
重新排列语句,以便在Users重命名表时,不会再次调用它.下图中显示了一个示例.

krz*_*chu 10
输入Enable-Migrations命令时,将Migrations在项目中创建一个文件夹.无论何时Add-Migration,都会在该文件夹中创建新的迁移文件.在该文件中,定义了两种方法:
Up() - 定义在使用时升级数据库时要采取的操作 Update-DatabaseDown() - 定义在使用降级数据库时要采取的操作 Update-Database当您删除了Competencies模型时,最新的迁移会向该Up()方法添加代码,该代码会销毁Competencies表中的索引并删除该表.正如您手动完成的那样,只需删除负责它的代码即可Update-Database.它应该没有问题地升级它.
即使您重新完成了项目的迁移,EF 仍然会记住架构更改。
我们在项目早期遇到了类似的问题,我们通过从数据库中删除 _MigrationHistory 表然后重新生成迁移来修复它。
| 归档时间: |
|
| 查看次数: |
31418 次 |
| 最近记录: |