1

是否可以将 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 表而不是创建一个新表。这可能吗?

4

1 回答 1

1

如果您将 BarMap 更改为:

class BarMap : Class<Bar> { }

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

看看关于子类的页面底部附近的http://fluentnhibernate.wikia.com/wiki/Fluent_mapping (你想要table-per-class-hierarchy)

于 2012-05-25T15:55:03.457 回答