如何 NHibernate 将多个类映射到同一个表
Posted
技术标签:
【中文标题】如何 NHibernate 将多个类映射到同一个表【英文标题】:How to NHibernate Map Multiple Classes to the Same Table 【发布时间】:2012-05-25 15:25:09 【问题描述】:是否可以将 2 个类映射到同一张表?
class Foo
class Bar : Foo
class Zap : Bar
Foo 和 Bar 是 Fluent Nhibernate 自动映射到一个会话工厂。
所有 3 个类都在不同的会话工厂中使用 Fluent 映射进行映射:
class FooMap : Class<Foo>
class BarMap : Subclass<Bar>
class ZapMap : Subclass<Zap>
public ZapMap()
Table("Bar");
我希望 Zap 映射到 Bar 表而不是创建一个新表。这可能吗?
【问题讨论】:
这些有帮助吗? philliphaydon.com/2011/08/…philliphaydon.com/2011/08/… 【参考方案1】:如果您将 BarMap 更改为:
class BarMap : Class<Bar>
并且您的 Bar 表上有一个“类型”列(类型为 string 以区分 Bar 和 Zap),那么它应该可以工作
看一下页面底部附近的http://fluentnhibernate.wikia.com/wiki/Fluent_mapping关于子类(你想要每类层次结构的表)
【讨论】:
以上是关于如何 NHibernate 将多个类映射到同一个表的主要内容,如果未能解决你的问题,请参考以下文章
操作方法:从同一个表映射(NHibernate)具有不同业务逻辑的多个类?
如何在多个实体到另一个实体之间创建 NHibernate 关系映射(即继承映射)