我最近從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