При использовании больших двоичных объектов с более чем 8000 байтами данных вам необходимо специально установить Parameter.SqlDbType = SqlDbType.Image
, чтобы он работал (как описано здесь).
Dapper, когда он видит поле byte[]
, по умолчанию принимает значение SqlDbType.Binary
, что означает, что для больших BLOB-объектов вставки и обновления завершатся ошибкой усечения данных.
Есть ли элегантное решение этой проблемы? Единственный вариант, который я вижу, - это закодировать всю транзакцию с помощью методов ADO.NET.