Cómo enviar parámetros no incluidos en los DTO utilizando la biblioteca Dapper

dapper execute ienumerable mapping parameters

Pregunta

El código siguiente arroja un error porque el script sql requiere storeId pero no es parte del DTO. StoreId está disponible desde la función de llamada, pero no sé cómo pasarlo a apuesto de una manera limpia.

¿Hay algún vudú apuesto que me permita pasar este valor junto con la lista, sin tener que cambiar el modelo o reasignar todas las propiedades de DTO para incluir 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);
        }
    }

Respuesta aceptada

No probado, pero quizás:

connection.Execute(sql, listings.Select(x => {
    var args = new DynamicParameters(x);
    args.Add("storeId", storeId);
    return args;
});


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué