Krav: Når Dapper.Contrib bruges til at udføre Insert-metoden, er returværdien for en enkelt indsat data for det selv-inkrementerende primære nøglefelt værdien efter indsættelsen, og når returværdien er større end 2147483647, vil Dapper.Contrib kaste undtagelsen "Værdien er for stor eller for lille for Int32".
Når man bruger Dapper.Contrib til at indsætte data, kommer fejlen "Værdien er for stor eller for lille for Int32", og databasen er blevet indsat med succes! mistænkte, at det var et problem med ORM-rammeværket, søgte derefter på GitHub og fandt ud af, at det var et kendt problem,Dapper-teamet har ikke rettet det, fordi de er bekymrede for, at det vil få for stor effekt, og andre forfattere har givet PR til Dapper, men det er også blevet lukket, som vist i figuren nedenfor:
Hyperlink-login er synlig.
Årsagen til undtagelsen er, at efter at have opnået selv-value-added, med SQL Server-adapteren som eksempel, kastes castet til en int-type fejl, og den maksimale værdi af int er (int. MaxValue): 2147483647, som vist i figuren nedenfor:
For at genskabe metoden oprettes en ny tabel, tilføjes primærnøglen fra 2147483648, og SQL-scriptet er som følger:
Ved at referere til Dapper.Contrib-pakken udføres indsættelsesoperationen med følgende kode:
Fejlen er som følger:
opløsning
Erstat Dapper.Contrib med Dapper.Contrib.Unofficial pakken med følgende kommando:
Testen giver ikke længere en fejl, som vist i følgende figur:
Tip: Dapper.Contrib.Unofficial er ikke fuldt testet, test det venligst selv, før du bruger det!
(Slut)
|