如何调试错误"一个从属角色有多个具有不同值的主体。"

时间:2017-08-22 17:55:01

标签: c# entity-framework debugging ef-database-first

我的问题是如何调试错误"参照完整性约束违规。依赖角色具有多个具有不同值的主体。"使用Database-First方法时?

如何找出导致错误的实体?

当您收到此错误并且不知道它来自哪个表时,在DB Schema中要具体说明什么?我在数据库中有数百个表格,我刚刚添加到EF DB Diagram中。

Visual Studio将为inner exception提供此消息并error code -2146232022但不会指向破坏验证的实体。

背景:

  • EF 6.0(数据库优先)
  • MS-SQL 2014
  • C#
  • 显然,model.SaveChanges()
  • 会触发此错误

enter image description here

1 个答案:

答案 0 :(得分:2)

尝试SQL Server Profiler之后,我已经看到尽管数据库的核心验证系统应该发送错误,但在model.SaveChanges()时,SQL服务器上没有运行任何查询。 因此,只有外键问题,EF6试图生成一个不存在的外键。

我在检查SQL上的每个外键后发现了错误。其中一个被错误地定义在另一个数据库字段上。在将其更改为正确的字段后,所有内容都会再次保存。