我正在使用 Entity Framework Core 开发 ASP.NET Core 应用程序,并且在尝试将数据插入数据库时遇到错误。我收到的错误消息是:
“SqlException:INSERT 语句与 FOREIGN KEY 约束“FK_Items_Orders_OrderID”冲突。冲突发生在数据库“OrderEase”、表“dbo.Orders”、列“OrderID”中。”
“商品”表和“订单”表之间存在一对多关系,其中每个商品都与一个订单相关联。我检查了以下内容:
尽管进行了这些检查,我仍然遇到此错误。可能是什么原因导致此问题?我该如何解决?
这是我的 DbContext 配置的片段:
// DbContext configuration in OnModelCreating method
modelBuilder.Entity<Order>()
.HasMany(o => o.Items)
.WithOne(i => i.Order)
.HasForeignKey(i => i.OrderID)
.OnDelete(DeleteBehavior.Cascade);
任何有关故障排除和解决此问题的见解或建议将不胜感激。
如果您的项目类中同时具有 OrderId 和 Order(从您的问题看来是这样)属性,那么在插入项目时可能会混淆使用哪一个 EF。
我认为最佳实践是始终设置 Order 属性而不是 OrderId。