【问题标题】:How to NHibernate Map Multiple Classes to the Same Table如何 NHibernate 将多个类映射到同一个表
【发布时间】:2012-05-25 15:25:09
【问题描述】:

是否可以将 2 个类映射到同一张表?

class Foo {}
class Bar : Foo {}
class Zap : Bar {}

Foo 和 Bar 是 Fl​​uent Nhibernate 自动映射到一个会话工厂。

所有 3 个类都在不同的会话工厂中使用 Fluent 映射进行映射:

class FooMap :  Class<Foo> {}

class BarMap :  Subclass<Bar> {}

class ZapMap :  Subclass<Zap> {
    public ZapMap() {
          Table("Bar");
    }
}

我希望 Zap 映射到 Bar 表而不是创建一个新表。这可能吗?

【问题讨论】:

标签: nhibernate inheritance fluent-nhibernate nhibernate-mapping


【解决方案1】:

如果您将 BarMap 更改为:

class BarMap : Class<Bar> { }

并且您的 Bar 表上有一个“类型”列(类型为 string 以区分 Bar 和 Zap),那么它应该可以工作

看一下页面底部附近的http://fluentnhibernate.wikia.com/wiki/Fluent_mapping关于子类(你想要每类层次结构的表)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-07
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    相关资源
    最近更新 更多