一个表中的ServiceStack OrmLite类层次结构

时间:2014-06-18 12:33:07

标签: ormlite-servicestack

我有一个Base抽象类和两个派生类,我希望所有这些类都存储在一个表中(每个层次结构表);如何在ServiceStack OrmLite或解决方法中解决此问题。

public abstract class MyBaseClass
{
    public String Name { get; set; }
}

public class MyDerivedClassA : MyBaseClass
{
    public String Name1 { get; set; }
}
public class MyDerivedClassB : MyBaseClass
{
    public String Name2 { get; set; }
}

1 个答案:

答案 0 :(得分:1)

OrmLite POCO的地图 1:1 及其基础表,因此所有属性都需要在基类中展平。如果您愿意,可以使用[Alias]让所有类型查看同一个表,即:

[Alias("Table")]    
public abstract class MyBaseClass
{
    public String Name { get; set; }
    public String Name1 { get; set; }
    public String Name2 { get; set; }
}

[Alias("Table")]    
public class MyDerivedClassA : MyBaseClass {}

[Alias("Table")]    
public class MyDerivedClassB : MyBaseClass {}

但这是毫无意义的。只需将您的类型映射到数据库中,就可以更容易地推断出究竟发生了什么。