我最近从1.0迁移到Fluent NHibernate 1.1,并且迁移有一些突破性更改。流畅的NHibernate映射为只读属性
例如,在域模型字段等
public virtual string CustomerType
{
get { return /*computed value based on _Type which is a column in database */; }
}
public virtual string MemberType
{
get { return _Type; }
set { _Type = value; }
}
使用不指定任何配置/公约很好地工作。现在它会抛出一个错误,指出“无法找到setter”。我看到的解决方案是创建一个成员变量,例如customerType或_customerType,或者将该变量放入受保护的setter中。
请注意,CustomerType依赖于从数据库检索到的另一个值。
我也看到了类似的替代品,其中http://support.fluentnhibernate.org/discussions/help/269-fluentnhibernate-11-automapper-doesnt-accept-read-only-properties-anymore的 是DefaultAutoMappingConfiguration覆盖如
public override bool ShouldMap(Member member)
{
if (member.IsProperty && !member.CanWrite)
{
return false;
}
return base.ShouldMap(member);
}
但是,这意味着私人或受保护的制定者在映射是一起跳过等领域。
我正在寻找一个解决方案,当流利NHibernate不查找setter时,它没有指定,但映射私人/受保护的setter。
任何方向如何与此有关呢?
是的。它是数据库中列的派生值。我也更新了这个问题。 – WorldIsRound 2011-01-24 23:01:49