2011-04-13 55 views
0

我所有的持久對象都有一個不應持久的屬性。使用流利的NHiberanate如何關閉非持久性屬性的映射

這時我產生我的自動映射是這樣的:

var autoMap = 
    AutoMap.AssemblyOf<BaseEntity>() 
    .Where(type => type.Namespace != null && type.Namespace.Contains("Models")) 
    .Conventions.AddFromAssemblyOf<IEntity>() 
    .OverrideAll(map => map.IgnoreProperty("IsDummy")); 

但是返回以下錯誤:

System.TypeInitializationException: System.TypeInitializationException: 爲 的類型初始值「 Core.Context'拋出了一個異常。 ---> NHibernate.InvalidProxyTypeException: 以下類型可能不被用作 代理:Core.Models.MyEntity:方法 get_IsDummy應該是 「公共/受保護虛擬」或 「受保護的內部虛擬」

這使我相信,覆蓋不起作用。 (Core.Context是觸發映射過程的類)

回答

1

即使未映射,您也必須創建屬性虛擬。否則,NHibernate無法正確生成代理來延遲加載對象。

相關問題