我正在寻找一种将多个POCO对象映射到ServiceStack中的单个表中的方法。
是否有可能以一种干净的方式执行此操作,而不会“破坏”表创建过程?
答案 0 :(得分:2)
一般来说,In OrmLite: 1 Class = 1 Table。
但是我不清楚您的意思是“将多个POCO对象映射到单个表中”,这听起来像是使用Auto Mapping来填充具有多个POCO实例的表,例如:
var row = db.SingleById<Table>(id);
row.PopulateWithNonDefaultValues(instance1);
row.PopulateWithNonDefaultValues(instance2);
db.Update(row);
如果您需要维护一个表并在通用表中拥有其他“子”类来维护不同的表,则可以使用[Alias]
,以便所有Update / Select / Insert引用相同的表,例如:>
public class Poco
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
[Alias(nameof(Poco))]
public class PocoName
{
public int Id { get; set; }
public string Name { get; set; }
}
[Alias(nameof(Poco))]
public class PocoAge
{
public int Id { get; set; }
public int Age { get; set; }
}
尽管我真的没有看到在使用OrmLite之前使用自动映射将单个表映射到其他类的好处。