2017-08-29 132 views
2

ServiceStack.OrmLite是否支持继承映射?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',但它不起作用。

回答

0

否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; } 
}