有时我们会遇到 FK 约束错误。
我想知道是否是由于它使用的 EF Core 版本有问题 - 3.1.2。
我想要证据表明我们需要升级它 - 因为当权者非常不愿意做出改变(他们认为这是风险)。
我们已经检查了配置。
该版本的 EF Core 可能存在什么已知问题?
也许有时无法保证首先插入哪个实体,因此有时 ID 未知。
FK 违规通常是在 EF 被告知附加/关联一个实际上并不代表底层数据库中的行的实体,或者实体之间的关系未正确设置时引起的。与此相关的一个常见错误是两个实体之间的关系意外连接到错误的值而不是您期望的 FK 属性。一对一关系是一个很好的例子,默认情况下,
.HasOne(x => x.Second).WithOne(x => x.First)
将连接两个表 PK,而不是您可能期望的 First.SecondId 或 Second.FirstId。需要显式配置此类关系。