Dapper: Liest direkt nth item vom GridReader

dapper

Frage

Das, was ich im Dapper Blog gefunden habe

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

Meine Anforderung ist, ich möchte nur "Bestellungen" direkt lesen. Kann ich das machen ?

Akzeptierte Antwort

Wenn Sie die anderen beiden nicht möchten, können Sie Read aufrufen, ohne diese Reihenfolge zu durchlaufen: Es werden keine Objekte materialisiert:

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

Beliebte Antwort

Sie können die Query-Erweiterung verwenden, um einzelne zu lesen, z

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

Bearbeiten:

So führen Sie die gespeicherte Prozedur aus:

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


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow