2011-06-06 53 views
0

我有以下FluentNHibernate映射:FluentHibernate:如何指定連接映射表不應該被插入

public AssetMap() 
    { 
     Table("PRASSET"); 
     Id(x => x.Id).Column("PRA_RECNUM").GeneratedBy.Sequence("PRA_RECNUM_GEN"); 
     ...fields mapped from PRASSET table 
     Join("PRSTOCK", m => 
     { 
     m.Fetch.Join(); 
     m.Optional(); 
     m.KeyColumn("PRS_ASSRN"); 
     ...fields mapped from PRSTOCK table 
     }); 
    } 

正如Join位暗示m.Optional()呼叫,有可能會或可能不會有相應的PRSTOCK記錄。

我遇到的問題是,當我保存Asset實例,它是髒僅就其PRASSET -mapped屬性之一的,並沒有相應的PRSTOCK記錄,它插入一個!這強調的不是我想要發生的事情,因爲在大多數情況下不應該有相應的PRSTOCK記錄。

我可以嘗試在映射配置中進行調整嗎?在這個階段,僅僅爲了防止記錄被插入到PRSTOCK就足夠了,但理想情況下NHibernate不應該嘗試更新或插入PRSTOCK,除非Asset實例的屬性映射到PRSTOCK的一個已被弄髒。

回答

0

根據this博客文章,如果屬性不爲null,NHibernate將總是嘗試插入連接映射記錄。所以我已經使適當的屬性可以爲空(默認爲空),並希望它不會嘗試插入了。