Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 3345|Răspunde: 1

[Sursă] Am rezolvat eroarea Dapper.Contrib "Valoarea este prea mare sau prea mică pentru Int32"

[Copiază linkul]
Postat pe 06.08.2023 14:04:48 | | | |
Cerințe: Când se folosește Dapper.Contrib pentru a executa metoda Insert, valoarea de returnare a unei singure date inserate pentru câmpul cheie primară auto-incrementant este valoarea după inserare, iar când valoarea returnată este mai mare de 2147483647, Dapper.Contrib va arunca excepția "Valoarea este prea mare sau prea mică pentru Int32".

Când folosești Dapper.Contrib pentru a introduce date, eroarea "Valoarea este prea mare sau prea mică pentru Int32" și baza de date a fost introdusă cu succes! am suspectat că este o problemă cu cadrul ORM, apoi am căutat pe GitHub și am descoperit că este o problemă cunoscută,Echipa Dapper nu a rezolvat problema pentru că se teme că va avea un impact prea mare, iar alți autori au oferit PR pentru Dapper, dar și aceasta a fost închisă, așa cum se arată în figura de mai jos:

Autentificarea cu hyperlink este vizibilă.



Motivul excepției este că, după obținerea auto-valorii adăugate, luând ca exemplu adaptorul SQL Server, distribuția este cast-ul într-o eroare de tip int, iar valoarea maximă a lui int este (int. MaxValue): 2147483647, așa cum se vede în figura de mai jos:



Pentru a reproduce metoda, creează un tabel nou, adaugă cheia primară începând de la 2147483648, iar scriptul SQL este următorul:

Referindu-vă la pachetul Dapper.Contrib, efectuați operația de inserare cu următorul cod:

Eroarea este următoarea:



soluție

Înlocuiește Dapper.Contrib cu pachetul Dapper.Contrib.Unofficial cu următoarea comandă:

Testul nu mai oferă eroare, așa cum se vede în figura următoare:



Sfat: Dapper.Contrib.Unofficial nu este testat complet, te rog să-l testezi tu înainte să-l folosești!

(Sfârșit)





Precedent:Qv2ray conectează serviciul Trojan-Go pe Windows
Următor:SQL Server găsește datele pe care varchar le convertește în eroare bigint
 Proprietarul| Postat pe 06.08.2023 14:14:21 |
Adresă GitHub modificată:https://github.com/itsvse/Dapper.Contrib
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com