我有一个类似这样的域类。我希望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