【发布时间】:2019-02-28 06:02:16
【问题描述】:
我正在寻找一种将多个 POCO 对象映射到 ServiceStack 中的单个表的方法。
是否有可能以一种干净的方式做到这一点,而无需“破解”表创建过程?
【问题讨论】:
标签: servicestack ormlite-servicestack
我正在寻找一种将多个 POCO 对象映射到 ServiceStack 中的单个表的方法。
是否有可能以一种干净的方式做到这一点,而无需“破解”表创建过程?
【问题讨论】:
标签: servicestack ormlite-servicestack
一般来说,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],以便所有更新/选择/插入引用同一个表,例如:
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 中使用它之前,我并没有真正看到使用 AutoMapping 将其他类映射到的单个表的好处。
【讨论】: