c# - Dapper 将特定列的子集直接返回到 DTO

标签 c# .net sql-server orm dapper

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

谢谢 蒂姆

最佳答案

你可以按照下面的方法进行

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

关于c# - Dapper 将特定列的子集直接返回到 DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18950919/

相关文章:

c# - 将原始序列化值添加到 Protocol Buffer (protobuf-net、protobuf-csharp)中的重复字段

c# - 有没有办法调整其内容的边框大小? (Winnrt Xaml)

sql-server - Analysis Services .abf 文件数据库还原

sql-server - 为什么Where子句中的空格不会导致语法错误?

sql-server - 使用 MSSQL 将 SQL Server 与 Nodejs 连接时出现 SQL Server 错误 "[ConnectionError: Login failed for user ' *** *'.] "

c# - LINQ:无效的匿名类型成员声明符。匿名类型成员必须使用成员分配、简单名称或成员访问来声明

c# - 如何在引发异常时仅显示第一行?

c# - 您如何保存对 NewExpression 的引用?

.net - Powershell System.IO.StreamReader 读取方法

.net - 处理 Owin/Katana 和 Autofac 中的 DI 错误