有人可以提供或链接到一个简单的示例,说明如何使用ServiceStack从具有多个连接的现有SQLServer数据库返回非规范化对象数组?
返回的对象只有查询中的一小部分列,并且具有不同的名称。
我宁愿使用ORMLite,但如果需要,我很乐意使用EF。我将把它用于只读操作。
E.g。如果我要使用以下连接表查询数据库:Customer
,Order
,Orderline
,我想返回一个反规范化列表,如下所示,但使用不同的列名称比db上使用的名称:
答案 0 :(得分:2)
在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 });
其中CustomerProductOrder
是此查询的非规范化POCO,它将使用结果集中的匹配列填充所有属性。
可以在OrmLite's API Overview上找到更多OrmLite查询示例。