2011-02-08 145 views
2

我所有的實體都具有以下屬性:保存時是否可以排除實體的某些字段?

  • public virtual DateTime CreatedDate {get;設置;}
  • 公共虛擬字符串CreatedBy {get;組; }
  • public virtual DateTime UpdatedDate {get;組; }
  • public virtual string UpdatedBy {get;組; }

我已經實現了一個事件監聽(IPreUpdateEventListenerIPreInsertEventListener),這樣我可以在插入之前填補這些屬性/更新我的實體。
保存之前我不加載我的實體因爲我已經在視圖(id,版本)中獲得了所有的字段。我想唯一要避免放在隱藏字段(我的觀點)是CreatedDateCreateBy
因爲我填寫這些字段只有一次,當實體創建的第一次,我在想,如果有一種方法將它們排除在外,當我更新(只更新)我entitiy? 謝謝。

+0

除非您更改與新數據或對各個領域的框架是足夠聰明不包括在更新中保持不變的字段力更新這些字段查詢,嘗試分析調用,看看是否是這種情況 – 2011-02-08 14:45:33

+0

@K Ivanov - 這是不正確的,默認情況下,NHibernate包含更新中的所有映射屬性,即使它們沒有改變。您可以使用動態更新來控制此行爲。 – 2011-02-08 14:53:26

回答

4

是的。爲了流利的NHibernate映射使用

Map(x => x.CreatedDate).Not.Update(); 
Map(x => x.CreateBy).Not.Update(); 

爲XML使用

<property name="CreatedDate" update="false" /> 
<property name="CreateBy" update="false" /> 
相關問題