2013-08-19 84 views
3

在我看來,對於dapper.query對象有一個datareader,對於dapper.Execute有一個ExectureNonQuery對象。糾正我,如果我錯了。是否精簡支持.net數據集

我們可以使用dapper來返回多個表的數據集嗎?

+0

我不確定我是否正確解釋了您的問題,但是如果您想從單個SQL命令獲取多個結果集,請查看QueryMultiple。在Dapper的網站上有一個例子。 – ssarabando

+0

與其他ORM一樣,使用ORM的整個點是遠離列/行的咒語,而是使用適當的.NET對象。所以現在 - 我不認爲Dapper會(或者將來會)支持數據集和數據表 –

+0

所以我正確的是ADO.net的datareader和executeNonQuery。 Dapper的網站是什麼?到目前爲止,我從各處獲取有關短小精悍的信息。 – user2688063

回答

4

不,沒有任何內置支持DataSet,主要是因爲它似乎很大程度上是多餘的,但也因爲這不是什麼小巧的目標。但這並不意味着它不包含用於處理多個結果的查詢的API;看到QueryMultiple

using (var multi = conn.QueryMultiple(sql, args)) 
{ 
    var ids = multi.Read<int>().ToList(); 
    var customers = multi.Read<Customer>().ToList(); 
    dynamic someOtherRow = multi.Read().Single(); 
    int qty = someOtherRow.Quantity, price = someOtherRow.Price; 
} 

注意,這個API是隻轉發(由於IDataReader等性質) - 基本上,每個Read/Read<T>等映射到又下一個結果網格。