不要在SubClass中映射属性

时间:2014-02-28 09:56:03

标签: c# nhibernate fluent-nhibernate

是否有可能告诉Fluent NHibernate不要在SubClassMap中映射一个属性,该属性在其父亲ClassMap中定义?所以:

public class ParentMap : ClassMap<Parent>
{
    public ParentMap()
    {
        this.Map(x => x.Id);
        this.HasManyToMany(x => x.Somethings)
            .Table("ParentSomethings")
            .ParentKeyColumn("ParentId")
            .ChildKeyColumn("SomethingId");
        this.DiscriminateSubClassesOn("Foo");
    }
}

public class ChildMap : SubclassMap<Child> // with Child : Parent
{
    this.DiscriminatorValue("Child");
    this.DontMap(x => x.Somethings); // fictional method
}

1 个答案:

答案 0 :(得分:1)

如果你需要这样做,你的地图是错误的,你需要为Parent创建一个ClassMap,并且不要映射这个属性&#34;&#34;,并为子项创建两个不同的映射,一个包含&#34;的东西&#34;属性和不包含的属性。