是否可以将2个类映射到同一个表?
class Foo {}
class Bar : Foo {}
class Zap : Bar {}
Foo和Bar在一个会话工厂中自动映射Nhibernate。
所有3个类都使用不同会话工厂中的Fluent映射进行映射:
class FooMap : Class<Foo> {}
class BarMap : Subclass<Bar> {}
class ZapMap : Subclass<Zap> {
public ZapMap() {
Table("Bar");
}
}
我希望Zap映射到Bar表而不是创建一个新表。这可能吗?
答案 0 :(得分:1)
如果您将BarMap更改为:
class BarMap : Class<Bar> { }
你的Bar表上有一个“type”列(类型字符串,用于区分Bar和Zap),然后它应该可以工作
查看页面底部附近有关子类的http://fluentnhibernate.wikia.com/wiki/Fluent_mapping(您希望每个类的层次结构)