1

有人可以提供或链接到一个简单的示例,说明如何使用 ServiceStack 从具有多个连接的现有 SQLServer 数据库返回非规范化的对象数组?

返回的对象将仅包含查询中列的一小部分,并且将具有不同的名称。

我更喜欢使用 ORMLite,但如果需要,我很乐意使用 EF。我将使用它进行只读操作。

例如,如果我要使用以下连接表查询数据库:Customer, Order, Orderline,我想返回一个非规范化列表,如下所示,但使用的列名与数据库上使用的不同:

  • 顾客姓名
  • 订购日期
  • 订单行号
  • 产品描述
  • 数量
4

1 回答 1

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 });

此查询的非规范化 POCO在哪里CustomerProductOrder,它将使用结果集中的匹配列填充所有属性。

更多 OrmLite 查询示例可以在OrmLite 的 API 概览中找到。

于 2013-09-23T05:49:01.453 回答