我的所有持久对象都有一个不应该保留的属性。
此时我生成了这样的自动化:
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是触发映射过程的类)
答案 0 :(得分:1)
即使未映射属性,也必须使属性成为虚拟属性。否则,NHibernate无法正确生成延迟加载对象的代理。