【发布时间】:2021-11-18 13:30:57
【问题描述】:
我在尝试向数据库表中添加新列时开始收到此消息。我确实没有尝试对数据库中的键列进行任何更改。
要更改列的 IDENTITY 属性,需要删除并重新创建该列。
因此,在网上通过各种潜在的解决方案,我一直试图放下桌子并更换它等等,但没有任何运气。当我在 PMC 中运行 Update-Database 时,我得到了同样的错误,因此不能删除任何内容,也不能将任何内容添加到数据库中。它完全被阻止了,我不知道为什么因为我没有更改数据库中的任何基本内容,我只是在表中添加了一个普通的 int 列并尝试迁移更新。
然后,我在网上看到信息说我应该删除表并更新数据库,EF核心将替换表以使数据库恢复同步。我在 VS SQL Server 对象资源管理器中右键单击该表并将其删除。但是当我添加迁移并运行Update-Database 时,我再次收到错误:
要更改列的 IDENTITY 属性,需要删除并重新创建该列。
这还没有投入生产,所以我不关心删除我的表会丢失数据,但它完全阻止了我。我怎样才能让我的数据库更新再次运行,这样我才能恢复我的表而不看到这个错误?
我不知道是什么导致了这个问题。在这一点上,我想我应该在 Azure 中为我的解决方案创建一个全新的数据库并一个一个地重新创建表,但这需要几天/几周,我不知道它是否会解决这个问题。
有没有人遇到过这个问题,你知道从头开始重新创建我的数据库是否会解决问题,还是它通常起源于一个完整的数据库重新创建无济于事的地方?
【问题讨论】:
-
也许您应该展示您所做的更改以及迁移代码的样子。
-
我希望我能做到,但我已经为此工作了好几天,并且我已经做出和撤消了很多更改,我不知道原始更改从哪里开始和结束。我可以将我的 git 提交恢复到几天前的位置,我也可以恢复到以前的迁移,但是当我每次尝试更新数据库时都会收到相同的错误时,这不会对数据库做任何事情。
标签: sql-server entity-framework entity-framework-core