我正在尝试使用fluent nhibernate映射一个连接的子类场景。
我在命名空间核心中定义了一个类实体,还有一个类
子类:命名空间somemodule中的实体
现在我显然不想让类实体知道它的派生
类型,somemodules命名空间引用core-而不是相反
在附近。
我能找到的所有例子都有如下用途:

public class EntityMap : ClassMap<Entity> {
    public EntityMap() {
        Id(x => x.Id)

        var subClassMap = JoinedSubClass<SubClass>("SubClassId", sub => sub.Map(x => x.Id));

        subClassMap.Map(x => x.SomeProperty)
        ...
    }
}

这在我的情况下根本行不通-我需要类似于
NHibernate XML映射:
<joined-subclass name="SubClass" extends="Entity, Core" >
<key column="SubClassId" foreign-key="FK_KollegiumEntity"/>
<property name="Name" length="255" not-null="true" />
...
</joined-subclass>

有谁能用流利的NHibernate做到这一点吗?

最佳答案

我想自从这个问题被问到之后,api已经改变了,但这对我来说很有效:

public class SomeSubclassMap : SubclassMap<SomeSubclass> {
    public SomeSubclassMap()
    {
        KeyColumn("SomeKeyColumnID");
        Map(x => x.SomeSubClassProperty);
        ...
    }
}

我相信只有当keycolumn不同于'baseclassname\u id'时,keycolumn才是必需的
注意:对于somesubclass扩展的基类,也应该有一个ClassMap<SomeBaseClass>

09-12 11:05