我使用C#,Entity Framework和SQL Server编写数据库访问方法。
我的数据库更新后,我开始变得奇怪" INSERT语句与FOREIGN KEY约束冲突"错误消息。在Visual Studio中执行单元测试时,我注意到只有一个数据库表A的错误。
我的单元测试的场景如下:
结果, INSERT 语句给出了 FOREIGN KEY约束错误消息。 INSERT 在其中包含每个FK 时失败,只有在我删除所有 FK 后, INSERT 才会成功来自表A。
因此,我认为我的SQL服务器或表A可能有问题。
这里有一些表A的统计数据
我很高兴收到有关此项目进展的任何提示!
答案 0 :(得分:0)
感谢您的帮助。我想我找到了解决问题的方法。
我正在使用DeZing for Databases工具进行数据库设计和数据库创建脚本的创建。
我画了一张从表A到另一张表的关系。该关系有两个密钥连接如下
表A< --------------------------------> CustomerAddress 强>
PK Guid
FK CustomerAddressGuid< -------> PK Guid
FK CustomerGuid< ------------------> FK CustomerGuid
现在订购了DeZing for Databases工具
FK CustomerGuid< ------------------> FK CustomerGuid (首先是FK关系)和
FK CustomerAddressGuid< -------> PK Guid (PK关系如下)
因此,即使值正确,INSERT也会失败,因为FK-FK关系优先于PK-FK。
不幸的是,DeZing工具没有自动解决这种情况,并且在工具中不容易看到关系顺序。
解决方案是在工具中重新排列链接的属性顺序(首先 PK属性),然后重新创建数据库创建脚本。