我正在开发一个使用 ASP.Net MVC 4、C# 和实体框架代码优先的应用程序。有一个模型(表)变得相当大,我担心 Identity 列将在明年左右用完值(Int32.MaxValue)。
我正在寻找一种方法将该身份从 int 更改为 long。过去,当我尝试这样做时,EF 不会让我这样做,除非它删除表并重新创建它。这不是一个选项,因为该站点已经上线并且该表中有实时数据。
有没有办法做到这一点?到目前为止,我的网络搜索和 Stackoverflow 搜索还没有给我任何关于如何执行此操作的提示。
需要代码优先迁移:
1)更新你的模型
2) 创建您的迁移
3) 在生成的迁移中编写自定义 SQL,以删除您的 PK 和引用它的每个 FK。这可能会变得非常混乱,因为您必须弄清楚名称。将其放在您的 AlterColumn 之上。
4) 编写自定义 SQL 来重新添加您的 PK 和 FK,并将其放在您的 AlterColumn 下。
5) 现在在 Down 脚本中执行相反的操作。
仅供参考,这对于 Azure SQL 来说是不可能的。在这种情况下,您必须创建一个新表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)