【发布时间】:2023-01-13 17:16:01
【问题描述】:
我正在尝试涵盖一个大型项目,该项目具有复杂的数据库模式和大量的集成测试。对于集成测试,我使用的是 SQLite 数据库。每次违反外键约束时,我都会收到错误消息:
FOREIGN KEY constraint failed
堆栈:EntityFramework core 6.0, SQLite v 6.0
连接字符串:
Data Source=:memory:;foreign keys=true
不解释,它打的是哪个外键。在实体很复杂的情况下,总是需要异常多的时间来确定它是哪个约束。 有什么方法可以使用有关外键约束已命中的信息来扩展异常? 就像是:
FOREIGN KEY constraint - ItemId failed
【问题讨论】:
-
我认为你可以处理 DbUpdateException 并获得你想要的信息
-
@BayramEren 当我查看
DbUpdateException在 MSDN 中的条目时,我在其实体条目的只读列表中找不到任何关于违反外键的信息。 -
我不确定,但我已经将其用于接近此的情况。值得一试:)
-
是的,@MarkBenningfield,我看到了那个答案。然而,我希望它在过去 6 年中有所改进。
标签: c# sqlite entity-framework-core