如何使用 Dapper 库发送不包含在 DTO 中的参数

How to send parameters not included in the DTOs using Dapper library

下面的代码会抛出错误,因为 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;
});