Dapper возвращает подмножество определенных столбцов непосредственно в DTO

Может ли Dapper возвращать данные непосредственно в DTO/POCO, который имеет только подмножество полей, т.е. могу ли я использовать классы, которые не содержат все столбцы в таблицах базы данных?

Например, если у меня есть следующий запрос (извините за мой sql - не моя сильная сторона):

select c.Name as "Customer", o.Number as "OrderNo", ol.Number as "Line", p.Description     as "Product", ol.Qty 
from order o
join customer c on c.Id = o.CustomerId
join orderLine ol on ol.OrderID = o.Id
join product p on p.Id = ol.ProductId
where o.date >= 1/9/2013 and o.date <= 30/9/2013

Как я могу использовать Dapper для чтения этого в массив/IEnumerable следующего класса:

class CustOrders{
  string Customer {get;set;}
  integer Order {get;set;}
  string Line {get;set;}
  string Product {get;set;}
  integer Qty {get; set;} 
}

Спасибо, Тим.


person The Huff    schedule 23.09.2013    source источник


Ответы (1)


вы можете сделать, как показано ниже

    var sql  = @"select c.Name as [Customer], o.Number as [Order], ol.Number as [Line], p.Description as [Product], ol.Qty ...";
    var result = connection.Query<CustOrders>(query);
person Damith    schedule 23.09.2013
comment
Блестящий. Спасибо за это Дэмит! 3 часа в Dapper и люблю его. Это сэкономит мне кучу времени на создание сервисов данных и демо-приложений! - person The Huff; 23.09.2013
comment
кстати, select c.Name as [Customer], o.Number as [Order], ol.Number as [Line] и т. д. позволяет избежать проблем с экранированием двойных кавычек и технически более правильно - person Marc Gravell; 23.09.2013