gpt4 book ai didi

c# - 在 Dapper 的上下文中不允许使用可枚举的参数序列(数组、列表等)

转载 作者:太空狗 更新时间:2023-10-29 20:09:26 25 4
gpt4 key购买 nike

我有以下代码:

static void Main(string[] args){
string sql= "SELECT * FROM Posts WHERE 1=1 ";
SqlParameter[] @params= SetDynamicParameter(ref sql, "Param=Value", "Param2=Value2", "ParamN=ValueN");

IDbConnection connection = new SqlConnection(connectionString);
IEnumerable<Posts> en = connection.Query<Posts>(sql,param:@params);

Console.ReadKey(true);
}
static SqlParameter[] SetDynamicParameter(ref string sql,params string[] sarr) {
string condition = string.Empty;
List<SqlParameter> list = new List<SqlParameter>();
foreach (var item in sarr)
{
condition += " AND "+item.Split('=')[0] + "=@" + item.Split('=')[0];
list.Add(new SqlParameter("@" + item.Split('=')[0], item.Split('=')[1]));
}
sql += condition;
return list.ToArray() ;
}

输出错误:在此上下文中不允许使用可枚举的参数序列(数组、列表等)。

怎么可能?有没有等效的解决方案?

最佳答案

尝试使用 Dapper.DynamicParameters 而不是 SqlParameter 数组:

var parameters = new DynamicParameters();
parameters.Add("@ParameterName", parameterValue);

关于c# - 在 Dapper 的上下文中不允许使用可枚举的参数序列(数组、列表等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43613167/

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