在OrmLite中,如果您需要执行复杂的查询或自定义联接,您总是可以回退到自定义 SQL,例如:
List<CustomerProductOrder> results = db.Select<CustomerProductOrder>(
@"SELECT c.Name, o.Date, ol.Number, p.Desc, o.Qty
FROM Order o INNER JOIN Customer c ON (o.CustomerId = c.Id) ...
WHERE o.Id = {0}", 1001);
或者通过使用参数化查询,例如:
List<CustomerProductOrder> results = db.Query<CustomerProductOrder>(
@"SELECT c.Name, o.Date, ol.Number, p.Desc, o.Qty
FROM Order o INNER JOIN Customer c ON (o.CustomerId = c.Id) ...
WHERE o.Id = @orderId", new { orderId = 1001 });
此查询的非规范化 POCO在哪里CustomerProductOrder
,它将使用结果集中的匹配列填充所有属性。
更多 OrmLite 查询示例可以在OrmLite 的 API 概览中找到。