gpt4 book ai didi

c# - 如何使用 dapper 获得可为 null 的 int[]?

转载 作者:行者123 更新时间:2023-11-30 18:38:53 25 4
gpt4 key购买 nike

如果我想使用 Dapper 获取包含 int 单列的一堆行,并且此结果集可能为空。使用 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

最佳答案

嗯,WhereSelect 如果是 int 就没有任何意义。很确定您要删除它们。

conn.Query<int>("select 123 where 1=0")
.ToArray();

你这样做有什么问题吗?

关于c# - 如何使用 dapper 获得可为 null 的 int[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10761110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com