C# Fluent nhibernate自动映射忽略继承属性

C# Fluent nhibernate自动映射忽略继承属性,c#,.net,nhibernate,fluent-nhibernate,automapping,C#,.net,Nhibernate,Fluent Nhibernate,Automapping,我正在使用fluent nhibernate映射以下模型: public abstract class BasePermission : Entity { public abstract string Name { get; } } public class ApproveMembershipPermission : BasePermission { public override string Name { get { return Resources.

我正在使用fluent nhibernate映射以下模型:

public abstract class BasePermission : Entity
{
    public abstract string Name { get; }
}
public class ApproveMembershipPermission : BasePermission
{
    public override string Name
    {
        get { return Resources.Permissions.ApproveMembership; }
    }
}
我已经配置为使用每类表层次结构策略,除了一件事之外,其他一切都很好。我不知道如何告诉FNH igore
Name
property。目前,我已生成此类映射:

<class name="BasePermission" table="BasePermissions">
    <id name="Id" unsaved-value="0">
      <column name="Id" />
      <generator class="hilo">
        <param name="max_lo">1000</param>
      </generator>
    </id>
    <discriminator type="String">
      <column name="Type" />
    </discriminator>
    <property access="property" name="Name">
      <column name="Name" />
    </property>
    <subclass name="ApproveMembershipPermission" discriminator-value="ApproveMembershipPermission">
      <property access="property" name="Name">
        <column name="Name" />
      </property>
    </subclass>
</class>

1000
我尝试了下一个映射覆盖:

public class BasePermissionMap : IAutoMappingOverride<BasePermission>
{
    public void Override(AutoMapping<BasePermission> mapping)
    {
        mapping.IgnoreProperty(x => x.Name);
    }
}
public class ApproveMembershipPermissionMap : IAutoMappingOverride<ApproveMembershipPermission>
{
    public void Override(AutoMapping<ApproveMembershipPermission> mapping)
    {
        mapping.IgnoreProperty(x => x.Name);
    }
}
公共类BasePermissionMap:IAutoMappingOverride
{
公共无效替代(自动映射)
{
mapping.IgnoreProperty(x=>x.Name);
}
}
公共类ApproveMembershipPermissionMap:IAutoMappingOverride
{
公共无效替代(自动映射)
{
mapping.IgnoreProperty(x=>x.Name);
}
}
这将导致以下映射:

<class name="BasePermission" table="BasePermissions">
    <id name="Id" type="System.Int64" unsaved-value="0">
      <column name="Id" />
      <generator class="hilo">
        <param name="max_lo">1000</param>
      </generator>
    </id>
    <discriminator type="String">
      <column name="Type" />
    </discriminator>
    <subclass name="ApproveMembershipPermission" discriminator-value="ApproveMembershipPermission">
      <property access="property" name="Name" />
    </subclass>
</class>

1000

名称仍映射在ApproveMembershipPermission类中。有谁能帮助API忽略此
名称
属性吗?

这似乎对您的情况有所帮助:

这些都是在黑暗中拍摄的照片;我认为你应该玩弄所有可能的选项和排列,直到有东西粘在一起——试着让IgnoreProperty部分只在基类中,或者只在子类中;也许可以尝试将子类中的属性设置为虚拟而不是重写…您使用的是什么版本的fluent nh?谢谢,我稍后会尝试。如果行得通,我就接受这个答案。