Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 3345|Vastaus: 1

[Lähde] Ratkaistiin Dapper.Contrib-virhe "Arvo on liian suuri tai liian pieni Int32:lle"

[Kopioi linkki]
Julkaistu 6.8.2023 14.04.48 | | | |
Vaatimukset: Kun käytetään Dapper.Contribia Insert-metodin suorittamiseen, yksittäisen lisätyn datan palautusarvo itsestään kasvavalle ensisijaiselle avainkentälle on lisäyksen jälkeinen arvo, ja kun palautusarvo on suurempi kuin 2147483647, Dapper.Contrib heittää poikkeuksen "Arvo on liian suuri tai liian pieni Int32:lle".

Kun käytetään Dapper.Contribia tietojen lisäämiseen, virhe "Arvo on liian suuri tai liian pieni Int32:lle", ja tietokanta on onnistuneesti lisätty! epäilin ongelmaa ORM-kehyksessä, mutta etsin GitHubista ja löysin sen tunnetuksi ongelmaksi,Dapperin tiimi ei ole korjannut sitä, koska pelkää sen olevan liian merkittävä, ja muut kirjoittajat ovat antaneet Dapperille PR:ää, mutta se on myös suljettu, kuten alla olevassa kuvassa näkyy:

Hyperlinkin kirjautuminen on näkyvissä.



Poikkeuksen syynä on se, että kun itse-arvolisäys on saatu, ottaen esimerkiksi SQL Server -sovittimen, cast heijastuu int-tyyppiseen virheeseen, ja suurin arvo int on (int. MaxValue): 2147483647, kuten alla olevassa kuvassa näkyy:



Metodin toistamiseksi luo uusi taulukko, lisää pääavain 2147483648:sta alkaen, ja SQL-skripti on seuraava:

Viitaten Dapper.Contrib-pakettiin, suorita insert-toiminto seuraavalla koodilla:

Virhe on seuraava:



ratkaisu

Korvaa Dapper.Contrib Dapper.Contrib.Unofficial -paketilla seuraavalla komennolla:

Testi ei enää anna virhettä, kuten seuraavassa kuvassa näkyy:



Vinkki: Dapper.Contrib.Unofficial ei ole täysin testattu, testaa se itse ennen käyttöä!

(Loppu)





Edellinen:Qv2ray yhdistää Trojan-Go-palvelun Windowsissa
Seuraava:SQL Server löytää datan, jonka varchar muuntaa bigint-virheeksi
 Vuokraisäntä| Julkaistu 6.8.2023 14.14.21 |
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com