Dapper-Plus BulkInsert — как вернуть количество затронутых строк?

#dapper #bulkinsert #dapper-plus

#dapper #bulkinsert #dapper-plus

Вопрос:

В Dapper-Plus есть ли способ вернуть количество затронутых строк в базе данных? Это мой код:

 using (SqlConnection connection = new SqlConnection(Environment.GetEnvironmentVariable("sqldb_connection")))
{
    connection.BulkInsert(myList);
}
 

Я вижу, что вы можете сделать это для вставки одной строки, но не можете найти функциональность в dapper plus bulk insert.

Ответ №1:

Поскольку Dapper Plus позволяет связывать несколько методов, метод напрямую не возвращает это значение.

Однако вы можете сделать это с помощью следующего кода:

 var resultInfo = new Z.BulkOperations.ResultInfo();

connection.UseBulkOptions(options => {
    options.UseRowsAffected = true;
    options.ResultInfo = resultInfo;
}).BulkInsert(orders);

// Show RowsAffected
Console.WriteLine("Rows Inserted: "   resultInfo.RowsAffectedInserted);
Console.WriteLine("Rows Affected: "   resultInfo.RowsAffected);
 

Скрипка: https://dotnetfiddle.net/mOMNng

Имейте в виду, что использование этой опции немного замедлит массовые операции.

РЕДАКТИРОВАТЬ: ответить на комментарий

будет ли это так же медленно, как при использовании обычного метода вставки dapper, или этот способ еще быстрее?

Это все равно будет намного быстрее, чем обычно Insert .

Комментарии:

1. будет ли это так же медленно, как при использовании обычного метода вставки dapper, или этот способ еще быстрее?