我有一個類似這樣的域類。我希望NHibernate在保存當前值LastUpdate
插入/更新時,以便我可以在查詢中使用它,但從數據庫中檢索Foo
時忽略它,並讓對象本身重新計算實際訪問它時的值。使用流利NHibernate映射一個只讀屬性沒有設置器
public class Foo {
public DateTime LastUpdate {
get {
/* Complex logic to determine last update by inspecting History */
return value;
}
}
public IEnumerable<History> History { get; set; }
/* etc. */
}
我對Foo
映射是這樣的:
public class FooMap : ClassMap<Foo> {
Map(x => x.LastUpdate)
.ReadOnly();
HasMany(x => x.History);
// etc...
}
我認爲ReadOnly()
是我想做到這一點,但是當我嘗試創建一個SessionFactory我得到以下異常:
Error: FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
---> NHibernate.PropertyNotFoundException: Could not find a setter for property 'LastUpdate' in class 'Foo'.
該屬性沒有setter,因爲它不應該設置,只能從讀取。是ReadOnly()
在這裏做的正確的事情?如果不是,什麼?
(NHibernate的v3.0b1,功能NHibernate V1.1)
只讀() ;僅在生成的映射xml流中設置LastUpdate屬性的insert =「false」和update =「false」屬性。 – tolism7 2010-11-07 00:13:58