如果我想获得一堆包含单列的行int
,使用 Dapper,并且此结果集可能为空。使用 Dapper 查询这些数据的最佳方式是什么?
例如,如果我有以下方法返回我想要的:
public void int[] GetInts()
{
conn.Query<int?>("select 123 where 1=1")
.Where(x=> x.HasValue)
.Select(x => x.Value)
.ToArray();
}
如果我将这一行更改为:
conn.Query<int>("select 123 where 1=0").ToArray();
没有结果时出现转换错误。
堆栈跟踪如下,异常只是在强制转换时未设置为对象实例的对象引用(T)next
:
at Dapper.SqlMapper.<QueryInternal>d__13`1.MoveNext() in .\SqlMapper.cs:line 611
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType) in .\SqlMapper.cs:line 539