我正在使用 Dapper 实现数据层功能以获取一组有序条目。
using (var connection = new OracleConnection(getConnString())
{
var fields = connection.Query<string>($"select fieldid from fields_v order by fieldid", param: null, commandType: CommandType.Text);
}
所以此时我得到一个 IEnumerable,它实际上是一个列表,所以我可以假设
fields
是有序的。
但据我所知,IEnumerable no 保证底层数据结构的顺序,所以我和我的函数的调用者如何确定返回的集合实际上是有序的?
为了向我的函数的被调用者保证,我可以通过
IList<string>
函数返回一个 AsList()
,这很好,但是,I 仍然没有保证。
我可以检查返回值是否真的是一个
IList<string>
,否则抛出异常,但这似乎不是一个正确的方法。
为什么没有
IOrderedEnumerable<T> IDBDconnection.Query()
?