流畅的NHibernate映射问题

时间:2010-06-02 15:27:28

标签: c# fluent-nhibernate

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记录时会爆炸。

有什么建议吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我的建议是在HasMany的KeyColum中使用外键而不是OrdersLineItems的主键:

  

HasMany(x =&gt;   x.LineItems).KeyColumn( “<强> FK_Orders ”)反向()Cascade.All();