Dapper:GridReaderから直接n番目のアイテムを読み込む

dapper

質問

これは私が大胆なブログで見つけたもの

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

私の要求は「注文」だけを直接読みたいということです。それをしてもいいですか ?

受け入れられた回答

他の2つを必要としない場合は、そのシーケンスを反復することなくReadを呼び出すことができます。オブジェクトはマテリアライズされません。

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

人気のある回答

クエリ拡張機能を使用して、1つ、たとえば

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

編集:

ストアドプロシージャを実行するには:

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


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow