parameters - 如何使用 Dapper 库发送 DTO 中未包含的参数
问题描述
下面的代码会引发错误,因为 sql 脚本需要storeId但它不是 DTO 的一部分。storeId 可从调用函数获得,但我不知道如何以干净的方式将其传递给 dapper。
是否有任何精巧的巫术可以让我将此值与列表一起传递,而无需更改模型或重新映射所有 DTO 属性以包含 storeId?
public void UpsertOrders(int storeId, string location, IEnumerable<OrdersListing> listings, ILogger logger)
{
using (var connection = new SqlConnection(connectionString))
{
var sql = File.ReadAllText(@".\scripts\UpsertOrders.sql");
connection.Execute(sql, listings);
}
}
解决方案
未经测试,但也许:
connection.Execute(sql, listings.Select(x => {
var args = new DynamicParameters(x);
args.Add("storeId", storeId);
return args;
});
推荐阅读
- jwt - 如何在 Istio 中使用授权和 JWT
- c# - Task.Any() 两次调用任务
- ansible - Ansible failed_when 条件不能阻止任务失败
- firebase - Flutter & Firebase streamBuilder 分页
- flyway - 测试和评估飞行路线 6.1.4
- amazon-web-services - 可以为 aws S3 批处理作业提供通配符
- proxy - HA 代理无法启动 - 未能删除补充组
- python - TF2:为张量流服务添加预处理到预训练的已保存模型(扩展已保存模型的图)
- database - MongoDB 中的两种方式嵌入与一种方式嵌入(多对多)
- java - 分割线问题