我試圖保存(插入)與列表子實體的父實體。這兩個實體都使用Guid作爲主鍵。密鑰不可爲空,並且在數據庫中沒有設置密鑰關係。同時插入NHibernate的父母和孩子
保存不起作用,引發異常聲明 - 我試圖將空值保存到Child表中的父外鍵中。
我期待nhibernate爲Parent創建一個鍵並讓它的Child對象知道它。這是NHibernate的限制還是使用Guid作爲主鍵?
這answer建議你必須設置父手輪,這真的是唯一的方法嗎?
這裏是我的映射,以供參考:
父映射:
HasMany(x => x.Children).KeyColumn("ParentKey").Inverse().Cascade.All();
兒童映射:
References(x => x.Parent).Not.Nullable().Column("ParentKey");
當然,我並不希望保存前的引用在運行時存在(也許我的問題是誤導,不適當編輯它) - 我期待的是Nhibernate知道父和子都是新的,並且知道如何用適當的鑰匙來堅持他們......太多問了嗎? – Dan
@丹我已經更新了我的答案,以提供更多幫助。 – docmanhattan
只是解釋更多的映射和約束檢查此鏈接http://wiki.fluentnhibernate.org/Fluent_mapping#Access_strategies – cpoDesign