我正在尝试解决一个反复出现的问题,有时我们会遇到 FK 约束错误。
这有点令人困惑,我开始怀疑是否是由于它所使用的 EF Core 版本存在问题 - 使用 3.1.2。
如果我能找到证据表明我们需要升级它,这将有很大帮助 - 因为当权者非常不愿意做出改变(他们认为这是风险)。
我们已经检查了配置,我只是想知道该版本的 EF Core 是否存在已知问题 - 也许有时无法保证首先插入哪个实体,因此 ID 有时是未知的?
提前致谢。
您需要提供有关代码和发生错误的情况的详细信息,这是一个最小的可重现示例。当 EF 被告知附加/关联一个实际上并不代表底层数据库中的行的实体,或者实体之间的关系未正确设置时,通常会导致 FK 违规。与此相关的一个常见错误是两个实体之间的关系意外连接到错误的值而不是您期望的 FK 属性。一对一关系是一个很好的例子,默认情况下,
.HasOne(x => x.Second).WithOne(x => x.First)
将连接两个表 PK,而不是您可能期望的 First.SecondId 或 Second.FirstId。需要显式配置此类关系。