我对这些技术很陌生,而且我遇到了一个特定问题。我有一个如此定义的类:
public class CameraDetail
{
public int I_id { get; set; }
public string C_division_id { get; set; }
// ....some other members....
}
...而Servicestack正在从端点发回这些列表。这一切都正常,但是我的特定端点正在进行一些表连接以获取特定记录,而数据库中的每个表都有主键I_id
。所以,在这里的当前查询中:
public List<CameraDetail> GetCameraDetailForStore(string storeId)
{
List<CameraDetail> ret = null;
// this is inside a using statement I didn't copy, just assume 'conn' exists
conn.Open();
ret = conn.Select<CameraDetail>(
conn.From<cctv_camera>()
.Join<cctv_camera, cctv_dvr>((c, d) => c.C_dvr_id == d.C_dvr_id)
.And<cctv_dvr>(d => d.C_store_id == storeId)
.Join<cctv_camera, cctv_vendor>((c, v) => c.C_vendor_id == v.C_vendor_id)
.Where(c => c.C_store_id == storeId))
}
...当我从I_id
表中实际需要时,我正从cctv_vendor
表中取回主键cctv_camera
。
我已经尝试了.PopulateWith
和.PopulateWithNonDefaultValues
,但确实没有多少运气。我想知道是否有我遗漏的东西,或者是否有人有任何建议。谢谢!
答案 0 :(得分:2)
OrmLite文档包含的示例显示了如何通过将表名称添加到字段名称3>来从您想要的表格中获取特定字段{...}您的自定义表格中的strong>,例如从您可以使用的I_id
获取cctv_camera
字段:
public class CameraDetail
{
public int cctv_cameraI_id { get; set; }
}
或者,您可以使用select data from multiple tables,例如:
public class CameraDetail
{
[BelongTo(typeof(cctv_camera))]
public int I_id { get; set; }
}
或者如果您想在模型中使用完全不同的名称,您可以使用属性getter,例如:
public class CameraDetail
{
public int Id => cctv_cameraI_id;
public int cctv_cameraI_id { get; set; }
}