gpt4 book ai didi

c# - Dapper 传递动态参数

转载 作者:行者123 更新时间:2023-11-30 14:13:23 26 4
gpt4 key购买 nike

我目前正在为 Dapper 编写包装器。这个包装器强制每个查询成为一个存储过程。

在我的包装器中,我这样调用 Dapper(有问题):

public IEnumerable<T> Select<T>(string storedProcName, dynamic param) {
IEnumerable<T> results;

using(var connection = new SqlConnection(_connectionString) {
results = connection.Query<T>(storedProcName, param, commandType: CommandType.StoredProcedure);
}

return results;
}

当我尝试将“param”传递给查询时,它告诉我“无法解析符号查询”。当我删除参数传递时,它工作正常。

谁能给我指出正确的方向,以便我可以将动态参数(或类似参数)传递给 Dapper?

最佳答案

您只需要将参数更改为类型对象,当您调用它时,您可以使用匿名类型来传递您的参数。

public IEnumerable<T> Select<T>(string storedProcName, object param) {
IEnumerable<T> results;

using(var connection = new SqlConnection(_connectionString) {
results = connection.Query<T>(storedProcName, param, commandType: CommandType.StoredProcedure);
}

return results;
}

然后你会这样调用它:

var results = query.Select<Entity>("spname", new { Id = 2, Something = "test" });

关于c# - Dapper 传递动态参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14374782/

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