我正在使用.net core7 minimum api创建web api。我创建了一个函数来调用从数据库中的表中获取的存储过程。
我遇到了一个将sp参数传递到函数中的问题。
表示例(web_api.dbo.app_event):
eventKey | sp | 方法参数 |
---|---|---|
/getstorer | [dbo]。[sGetStorer] | get | false[/tr>
/getsku | [dbo]。[sGetSkuByStorer] | get | true[/tr>
您可以注入HttpRequest
来检索请求"s信息:
app.MapGet("/foo", (HttpRequest request) =>
{
//...
foreach (var param in request.Query)
{
cmd3.Parameters.Add(new SqlParameter("@" + param.Key, param.Value.First()));
}
//...
})
param.Value
是一个集合,因为可以调用类似的url
/foo?param1=value1a¶m1=value1b
则request.Query["param1"]
将是["value1a", "value1b"]
。
创建一个函数,该函数将返回带有所需参数的Func
。例如,解析p
查询参数并返回string
的处理程序函数可以如下所示:
Func<string, string> GetFuncForSp(string sp) => p =>
{
// call sp:
DataTable dt = new();
using SqlConnection connn = new(strConstr);
using SqlCommand cmd3 = new(sp, connn);
// ...
}
用途:
app.MapGet(_eventkey, GetFuncForSp(_sp));