Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 3345|Odpoveď: 1

[Zdroj] Vyriešená chyba Dapper.Contrib "Hodnota je príliš veľká alebo príliš malá pre Int32"

[Kopírovať odkaz]
Zverejnené 6. 8. 2023 14:04:48 | | | |
Požiadavky: Pri použití Dapper.Contrib na vykonanie metódy Insert je návratová hodnota jedného vloženého dáta pre samozvyšujúce sa primárne kľúčové pole hodnota po vložení a keď je vrátená hodnota väčšia ako 2147483647, Dapper.Contrib vyhodí výnimku "Hodnota je príliš veľká alebo príliš malá pre Int32".

Pri použití Dapper.Contrib na vloženie dát sa objaví chyba "Hodnota je príliš veľká alebo príliš malá pre Int32" a databáza bola úspešne vložená! podozrieval som, že ide o problém s ORM frameworkom, potom som hľadal na GitHube a zistil som, že ide o známy problém,Tím Dapperu to neopravil, pretože sa obávajú, že by to mohlo mať príliš veľký dopad, a iní autori poskytli Dapperovi PR, ale aj to bolo zatvorené, ako je znázornené na obrázku nižšie:

Prihlásenie na hypertextový odkaz je viditeľné.



Dôvodom výnimky je, že po získaní vlastnej pridanej hodnoty, vezmúc napríklad SQL Server adaptér, sa castovanie prenesie na chybu typu int a maximálna hodnota int je (int. MaxValue): 2147483647, ako je znázornené na obrázku nižšie:



Na reprodukciu metódy vytvorte novú tabuľku, pridáte primárny kľúč začínajúci od 2147483648 a SQL skript je nasledovný:

Odkazujúc na balík Dapper.Contrib, vykonajte insert operáciu s nasledujúcim kódom:

Chyba je nasledovná:



riešenie

Nahradiť Dapper.Contrib balíkom Dapper.Contrib.Unofficial s nasledujúcim príkazom:

Test už neukazuje chybu, ako je znázornené na nasledujúcom obrázku:



Tip: Dapper.Contrib.Unofficial nie je úplne otestovaný, prosím, otestujte si ho sami pred použitím!

(Koniec)





Predchádzajúci:Qv2ray pripája službu Trojan-Go na Windows
Budúci:SQL Server nájde dáta, ktoré varchar konvertuje na bigint chybu
 Prenajímateľ| Zverejnené 6. 8. 2023 14:14:21 |
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com