我有一个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; }
}
答案 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 {}
但这是毫无意义的。只需将您的类型映射到数据库中,就可以更容易地推断出究竟发生了什么。