#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, или этот способ еще быстрее?