Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 3345|Ответ: 1

[Источник] Исправлена ошибка Dapper.Contrib «Значение слишком велико или слишком мало для Int32»

[Скопировать ссылку]
Опубликовано 06.08.2023 14:04:48 | | | |
Требования: При использовании Dapper.Contrib для выполнения метода Insert возвращаемое значение одного вставленного данных для самоувеличивающегося первичного ключа — это значение после вставки, и если возвращаемое значение превышает 2147483647, Dapper.Contrib выдаст исключение «Значение слишком велико или слишком мало для Int32».

При использовании Dapper.Contrib для вставки данных появляется ошибка «Значение слишком велико или слишком мало для Int32», и база данных успешно вставлена! подозревал, что проблема в фреймворке ORM, затем поискал на GitHub и обнаружил, что это известная проблема,Команда Dapper не исправила эту проблему, опасаясь, что это может оказать слишком большое влияние, а другие авторы уже предоставляли PR Dapper, но и сайт был закрыт, как показано на рисунке ниже:

Вход по гиперссылке виден.



Причина исключения в том, что после получения самодобавленного значения, например, адаптера SQL Server, каст пересчитывается на ошибку типа int, и максимальное значение int равно (int. MaxValue): 2147483647, как показано на рисунке ниже:



Чтобы воспроизвести метод, создайте новую таблицу, добавьте первичный ключ, начиная с 2147483648, и скрипт SQL выглядит следующим образом:

Ссылаясь на пакет Dapper.Contrib, выполните операцию вставки следующим кодом:

Ошибка следующая:



решение

Замените Dapper.Contrib на пакет Dapper.Contrib.Unofficial со следующей командой:

Тест больше не даёт ошибки, как показано на следующем рисунке:



Совет: Dapper.Contrib.Unofficial не полностью протестирован, пожалуйста, протестируйте его сами перед использованием!

(Конец)





Предыдущий:Qv2ray подключает сервис Trojan-Go в Windows
Следующий:SQL Server находит данные, которые varchar преобразует в ошибку bigint
 Хозяин| Опубликовано 06.08.2023 14:14:21 |
Изменённый адрес GitHub:https://github.com/itsvse/Dapper.Contrib
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com