流畅的NHibernate尝试为每个子类更改mysql表

时间:2014-01-16 17:59:32

标签: c# mysql nhibernate fluent-nhibernate

我正在构建一个具有继承的应用程序

class A
class B : A
class C : A
class D : A
...

然后

public class ClassA_Map : ClassMapping<A>
{
    public ClassA_Map()
    {
        Table("tableA");
        ID(...)
        Property(...) 
    }
}

现在我为B类(C,D,...)改变表格(mysql):

public class ClassB_Map : SubclassMapping<B>
{
    public ClassB_Map()
    {
        Table("tableB");
    }
}

但是SubclassMapping没有方法表...如何为B类更改tableName(C,D,...)

如果将ClassB_Map构造函数设置为空,则sql具有“... FROM tableA”

1 个答案:

答案 0 :(得分:0)

正如此处Fluent mapping - Subclasses所述,你应该像这样(参见SubclassMap基础)

public class ClassA_Map : ClassMap<A>
{
    public ClassA_Map()
    {
        Table("tableA");
        ID(...)
        Property(...) 

public class ClassB_Map : SubclassMap<B>
{
    public ClassB_Map()
    {
        Table("tableB");

同时检查Fluent NHibernate - how to create table-per-subclass mapping using a discriminator?