Orders Table
Id(x => x.ID, "ID");
...
HasMany<OrdersLineItems>(x => x.LineItems).KeyColumn("ID").Inverse().Cascade.All();
OrdersLineItems Table
Id(x => x.ID, "ID");
...
References(x => x.Orders, "OrdersID").ForeignKey("ID");
我正在尝试设置一个映射,其中订单表中的ID在OrdersLineItemsTable中的OrdersID中引用。
我遇到的问题是当我这样做时:order.LineItems.Add(lineItem);在我的代码中,我收到一条SQL错误说明:
无法将值NULL插入列'OrdersID',表'MyDatabase.dbo.OrdersLineItems';列不允许空值。 INSERT失败。 声明已经终止。
我已经监控了正在执行的SQL查询,并且可以看到Orders记录首次创建,并且在尝试创建OrdersLineItems记录时会爆炸。
有什么建议吗?提前谢谢。
答案 0 :(得分:1)
我的建议是在HasMany的KeyColum中使用外键而不是OrdersLineItems的主键:
HasMany(x =&gt; x.LineItems).KeyColumn( “<强> FK_Orders 强>”)反向()Cascade.All();