【问题标题】:Using Fluent NHiberanate how do I turn off the mapping of a non persistent property使用 Fluent NHibernate 如何关闭非持久属性的映射
【发布时间】:2011-04-13 12:35:35
【问题描述】:

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

此时我生成这样的自动映射:

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是触发映射过程的类)

【问题讨论】:

    标签: fluent-nhibernate automapping


    【解决方案1】:

    您必须将属性设为虚拟,即使它没有映射。否则,NHibernate 无法正确生成延迟加载对象的代理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 2010-10-28
      • 1970-01-01
      • 2013-06-26
      • 2011-12-01
      • 2011-08-31
      相关资源
      最近更新 更多