Dapper: Lectura directamente enésimo elemento del GridReader

dapper

Pregunta

Esto que encontré en el blog apuesto

var sql = 
@"
select * from Customers where CustomerId = @id
select * from Orders where CustomerId = @id
select * from Returns where CustomerId = @id";

using (var multi = connection.QueryMultiple(sql, new {id=selectedId}))
{
   var customer = multi.Read<Customer>().Single();      
   var returns = multi.Read<Return>().ToList();
   var orders = multi.Read<Order>().ToList();
   ...
} 

Mi requisito es que quiero leer directamente solo "pedidos". Puedo hacer eso ?

Respuesta aceptada

Si no quiere los otros dos, puede llamar a Read sin repetir la secuencia: no se materializarán los objetos:

var customer = multi.Read<Customer>(); // not consumed
var returns = multi.Read<Return>(); // not consumed
var orders = multi.Read<Order>().ToList();

Respuesta popular

Puede usar la extensión de consulta para leer solo, por ejemplo

const string sql = "select * from Orders where CustomerId = @id";
var orders = connection.Query<Order>(sql, new {id = 1}).ToList(); 

Editar:

Para ejecutar el procedimiento almacenado:

var orders = connection.Query<Order>("GetOrders", new {id = 1}, commandType: CommandType.StoredProcedure).ToList();


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué