ServiceStack.OrmLite继承映射

时间:2017-08-29 09:48:05

标签: c# .net ormlite-servicestack

ServiceStack.OrmLite是否支持继承映射?

与DevExpress XPO类似:Inheritance Mapping或nHibernate Inheritance

例如(c#):

public abstract class EventBase
{
   public string Name { get;set; }
}
public class NormalEvent: EventBase
{
   public string A { get;set; }
}
public class SuperDuppaEvent:EventBase
{
   public string B { get;set; }
}

在数据库中存在一个表'EventBase',其中包含来自'NormalEvent','SuperDuppaEvent'和'EventBase'的所有列/属性。

在文档中存在'AliasAttribute',但它不起作用。

1 个答案:

答案 0 :(得分:0)

No OrmLite不支持继承映射。在OrmLite中,每个POCO以其代表的RDBMS表1:1映射是核心期望。因此,默认情况下,每个类都将映射到具有相同名称的RDBMS表:

  • NormalEvent> NormalEvent表
  • SuperDuppaEvent> SuperDuppaEvent表

如果您想要不同的行为,您需要将POCO类1:1映射到数据库中的布局,例如:

class NormalEvent
{
    public string A { get; set; }
    public int EventBaseId { get; set; }
}