2013-08-19 86 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>等映射到又下一个结果网格。