我在尝试使用Update-Database时遇到了Table模型的一些问题,所以我决定删除该表并从头开始。为此,我通过Visual Studio的服务器资源管理器删除了表。但是现在当我尝试使用新版本的Table模型再次使用Update-Database时,我收到错误"找不到对象" dbo.Table"因为它不存在或您没有权限。"
我该如何解决这个问题?我有模型,但我无法生成SQL表。
答案 0 :(得分:15)
如果在迁移期间重命名表,请仔细检查重命名顺序是否正确:
DropForeignKey("dbo.PartnerTransactions", "partnerID", "dbo.Partners");
RenameTable(name: "dbo.PartnerTransactions", newName: PaymentTransactions");
不正确:
RenameTable(name: "dbo.PartnerTransactions", newName: PaymentTransactions");
DropForeignKey("dbo.PartnerTransactions", "partnerID", "dbo.Partners");
等等!重命名应该在所有drop和old_table_name操作之后进行。有时EF是慢速的。
答案 1 :(得分:5)
This answer helped me and many others.如果仅删除__Migrations表不起作用,请尝试删除数据库中的所有表,并执行update-database -force
答案 2 :(得分:1)
删除Up方法和down方法中的代码。然后运行命令Update-database
public override void Up()
{
//Delete the code
}
public override void Down()
{
//Delete the code
}
然后它运行良好。
答案 3 :(得分:0)
您是否勾选了表格列表上需要在更新向导中添加的复选框 还要确保仔细检查多元化的单词。
答案 4 :(得分:0)
请检查您的迁移,例如,如果创建表abc时出错,请在迁移中检查迁移创建表的内容是什么?
我发现了我的问题,当我检查我的迁移时,迁移无法创建表。所以,我手动编辑创建表查看另一个迁移文件。并再次运行dotnet ef数据库更新,并解决了这个问题。
希望这有帮助。 谢谢答案 5 :(得分:0)
这可能是一个黑客,可能不推荐。我有同样的问题但在我的情况下,我使用SQL服务器删除了我的表。当我尝试Update-Database
时,我得到了同样的错误。我按照这些步骤,
Update-Database
,并且更新成功。希望这会有所帮助!