【发布时间】:2016-09-02 09:24:37
【问题描述】:
我正在使用 C#、Entity Framework 和 SQL Server 编写数据库访问方法。
数据库更新后,我开始收到奇怪的“INSERT 语句与 FOREIGN KEY 约束冲突”错误消息。在 Visual Studio 中执行单元测试时,我注意到只有一个数据库表 A 的错误。
我的单元测试场景如下:
- 数据库表 A 与其他表有多个多对一关系
- 数据库表A有FK,指向其他表的PK
- 所有数据行均已正确插入并提交到其他表(PK Guids 是唯一的)
- 使用 C# 调试时,所有数据库表 A FK的 Guid 值都已为 C# context.TableA.Add(item) 语句正确设置
- 使用 SQL Server Profiler 进行调试时,创建的 SQL INSERT 语句对于语句中的每个 FK 都有正确的 Guid 值李>
因此,INSERT 语句给出了 FOREIGN KEY 约束 错误消息。 INSERT 失败 每个 FK,只有在我删除所有 FK 后 INSERT 才成功s 来自表 A。
因此,我认为我的 SQL 服务器或表 A 可能有问题。
这是表 A 的一些统计数据
- 大约有 80 列
- 每行大约 10 kB 大
- 执行 INSERT 时表为空
我很乐意收到任何有关此项目进展的提示!
【问题讨论】:
-
您能向我们展示一下表 A 的表设计以及它使用 FK 引用的表吗?
-
所有其他值中的 FK 是否设置为它们附加到的正确 A(在运行时)?
-
表 A 上的 80 列?哇,这么多列!
标签: c# sql-server entity-framework foreign-keys sql-insert