以下代码引发错误,因为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);
}
}
答案 0 :(得分:2)
未经测试,但也许:
connection.Execute(sql, listings.Select(x => {
var args = new DynamicParameters(x);
args.Add("storeId", storeId);
return args;
});