使用Fluent NHiberanate如何关闭非持久属性的映射

时间:2011-04-13 12:35:36

标签: fluent-nhibernate automapping

我的所有持久对象都有一个不应该保留的属性。

此时我生成了这样的自动化:

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'引发了异常。   ---&GT; NHibernate.InvalidProxyTypeException:   以下类型不能用作   代理:Core.Models.MyEntity:方法   get_IsDummy应该是   'public / protected virtual'或   'protected internal virtual'

这让我相信覆盖不起作用。 (Core.Context是触发映射过程的类)

1 个答案:

答案 0 :(得分:1)

即使未映射属性,也必须使属性成为虚拟属性。否则,NHibernate无法正确生成延迟加载对象的代理。