Nõuded: Kui Dapper.Contrib kasutatakse Insert meetodi täitmiseks, on ühe lisatud andme tagastatav väärtus isekasvava primaarvõtme välja jaoks väärtus pärast sisestamist ning kui tagastusväärtus on suurem kui 2147483647, viskab Dapper.Contrib erandi "Väärtus on liiga suur või liiga väike Int32 jaoks".
Dapper.Contribi kasutamisel andmete sisestamiseks tekib viga "Väärtus on Int32 jaoks liiga suur või liiga väike" ja andmebaas on edukalt sisestatud! kahtlustasin, et probleem on ORM raamistikus, otsisin GitHubist ja leidsin, et see on teadaolev probleem,Dapperi meeskond pole seda parandanud, sest kardab, et see võib olla liiga mõjukas, ning teised autorid on Dapperile PR-i andnud, kuid see on samuti suletud, nagu alloleval joonisel näidatud:
Hüperlingi sisselogimine on nähtav.
Erandi põhjus on see, et pärast eneseväärtuse lisandväärtuse saamist, näiteks SQL Server adapteri puhul, visatakse cast int tüüpi veaks ning maksimaalne väärtus int on (int. MaxValue): 2147483647, nagu alloleval joonisel näidatud:
Meetodi reprodutseerimiseks loo uus tabel, lisa primaarvõti alates 2147483648-st ning SQL-skript on järgmine:
Viidates Dapper.Contrib paketile, sooritame sisestamistoimingu järgmise koodiga:
Viga on järgmine:
lahus
Asenda Dapper.Contrib Dapper.Contrib.Unofficial paketiga järgmise käsuga:
Test ei anna enam viga, nagu on näidatud järgmises joonises:
Nipp: Dapper.Contrib.Unofficial ei ole täielikult testitud, palun testige seda ise enne kasutamist!
(Lõpp)
|