Looking for dapper Keywords? Try Ask4Keywords

Dapper.NET Выполнение операций с несколькими наборами входов


пример

Иногда вы хотите сделать одно и то же несколько раз. Dapper поддерживает это в методе Execute если внешний параметр (который обычно представляет собой один анонимный тип или экземпляр модели домена) фактически предоставляется как последовательность IEnumerable . Например:

Order[] orders = ...
// update the totals
connection.Execute("update Orders set Total=@Total where Id=@Id", orders);

Здесь dapper просто делает простой цикл для наших данных, в основном так же, как если бы мы это сделали:

Order[] orders = ...
// update the totals
foreach(Order order in orders) {
    connection.Execute("update Orders set Total=@Total where Id=@Id", order);
}

Это использование становится особенно интересным в сочетании с async API в соединении, которое явно сконфигурировано для всех «Множественных наборов активных результатов» - в этом использовании dapper автоматически контактирует с операциями, поэтому вы не оплачиваете затраты на задержку в строке. Это требует немного более сложного использования,

await connection.ExecuteAsync(
    new CommandDefinition(
        "update Orders set Total=@Total where Id=@Id", 
         orders, flags: CommandFlags.Pipelined))

Обратите внимание, однако, что вы также можете изучить параметры таблицы.