在我看来,dapper.query对象有一个datareader,对于dapper.Execute有一个ExectureNonQuery对象。如果我错了,请纠正我。
我们可以将dapper用于返回多个表的数据集吗?
不,没有任何内置的DataSet
支持,主要是因为它似乎很大程度上是多余的,但也因为这不是dapper的目标。但这并不意味着它不包含用于处理select
多个结果的查询的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>
等依次映射到下一个结果网格。