我正在尝试使用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>
。