Dapper: Lire directement le nième élément de GridReader

dapper

Question

Ce que j'ai trouvé dans dapper blog

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

Mon exigence est que je veux lire directement uniquement les "commandes". Puis-je faire cela ?

Réponse acceptée

Si vous ne voulez pas les deux autres, vous pouvez appeler Read sans jamais répéter cette séquence: aucun objet ne sera matérialisé:

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

Réponse populaire

Vous pouvez utiliser l’extension Query pour lire un seul fichier, par exemple

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

Modifier:

Pour exécuter la procédure stockée:

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


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi