2010-06-02 201 views
1
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"); 

我想建立一個映射,Orders表中的ID在OrdersLineItemsTable中的OrdersID中被引用。流利的NHibernate映射問題

我遇到的問題是當我這樣做︰order.LineItems.Add(lineItem);在我的代碼中,我得到一個SQL錯誤,指出:

無法將值NULL插入'OrdersID'列'MyDatabase.dbo.OrdersLineItems'列;列不允許有空值。 INSERT失敗。 該聲明已被終止。

我監視了正在執行的SQL查詢,並可以看到Orders記錄是第一次創建的,並且在嘗試創建OrdersLineItems記錄時會彈出。

有什麼建議嗎?提前致謝。

回答

1

我的建議是在的hasMany的KeyColum使用外鍵代替OrdersLineItems的主鍵的:

的hasMany(X => x.LineItems).KeyColumn(」 FK_Orders 「).Inverse()Cascade.All();

+0

謝謝。有效。 – 2010-06-07 16:39:11