Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 3345|Отговор: 1

[Източник] Разрешена грешката Dapper.Contrib "Стойността е твърде голяма или твърде малка за Int32"

[Копирай линк]
Публикувано в 6.08.2023 г. 14:04:48 ч. | | | |
Изисквания: При използване на Dapper.Contrib за изпълнение на метода Insert, връщащата стойност на един вмъкнат данни за самоувеличаващото се първично ключово поле е стойността след вмъкването, а когато връщаната стойност е по-голяма от 2147483647, Dapper.Contrib ще изхвърли изключението "Стойността е твърде голяма или твърде малка за Int32".

При използване на Dapper.Contrib за вмъкване на данни се появява грешка "Стойността е твърде голяма или твърде малка за Int32" и базата данни е успешно вмъкната! подозирах, че проблемът е в ORM framework, след което потърсих в 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 грешка
 Хазяин| Публикувано в 6.08.2023 г. 14:14:21 ч. |
Модифициран адрес в GitHub:https://github.com/itsvse/Dapper.Contrib
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com