外键依赖问题:将“Rating”列从 int 更改为 double
当 EF 数据库表具有列 (例如,“Rating”),它是一个 int,并由另一个表中的外键引用。将“Rating”的数据类型从 int 更改为 double 会触发错误:
The object 'DF__*'' is dependent on column '*''. ALTER TABLE ALTER COLUMN * failed because one or more objects access this column.
原因:
当“Rating”列最初定义为int,DBMS(例如 SQL Server)自动创建引用它的外键约束。此约束通过确保“评级”列中的任何值对应于引用表中的有效行来强制数据库的完整性。
解决方案:
到成功将“Rating”从 int 更改为 double,必须删除外键约束首先。
识别约束:
在对象资源管理器中,展开表属性并导航到 约束 类别。找到与“Rating”列关联的约束,例如“DF_Movies_Rating__48CFD27E”。
删除约束:
右键单击约束并选择删除。这将从数据库中删除约束。
更改列:
删除约束后,您现在可以更改“评级”使用适当的 SQL 将列转换为数据类型 double
重新创建约束:
一旦“Rating”列被更改,您可以重新创建外键约束来维护数据库完整性。
按照以下步骤,您可以成功更改数据“评级”列的类型,而不会遇到依赖错误。
以上是如何在 EF 数据库中将外键引用的整数列更改为双精度?的详细内容。更多信息请关注PHP中文网其他相关文章!