如何将NHibernate映射多个类到同一个表
问题描述:
是否可以将2个类映射到同一个表?如何将NHibernate映射多个类到同一个表
class Foo {}
class Bar : Foo {}
class Zap : Bar {}
Foo和Bar是流利的Nhibernate自动映射在一个会话工厂。
所有3类映射用流利的映射在不同的会话工厂:
class FooMap : Class<Foo> {}
class BarMap : Subclass<Bar> {}
class ZapMap : Subclass<Zap> {
public ZapMap() {
Table("Bar");
}
}
我想删除到被映射到酒吧桌上,而不是创建一个新的。这可能吗?
答
如果更改BarMap到:
class BarMap : Class<Bar> { }
,你有你的吧台上的“类型”列(字符串类型为它酒吧的和ZAP的区分的),那么它应该工作
看看http://fluentnhibernate.wikia.com/wiki/Fluent_mapping接近页面底部关于子类(你想要每个类的层次结构)
这些帮助吗? http://www.philliphaydon.com/2011/08/fluent-nhibernate-table-inheritance-discriminators/ http://www.philliphaydon.com/2011/08/fluent-nhibernate-table-inheritance-discriminators-part- 2 / – Phill