Követelmények: Amikor a Dapper.Contrib segítségével végrehajtjuk az Insert metódust, az önnövelő elsődleges kulcsmező egyetlen beillesztett adatának visszaküldési értéke a behelyezés utáni érték, és ha a visszatérési érték nagyobb, mint 2147483647, a Dapper.Contrib kivételt dob be: "Az érték túl nagy vagy túl kicsi az Int32-hez".
Amikor a Dapper.Contrib adatbehelyezésére használjuk, a hiba jelenik meg: "Az érték túl nagy vagy túl kicsi az Int32-hez", és az adatbázis sikeresen bekerült! gyanítottam, hogy az ORM keretrendszerrel van gond, majd rákerestem a GitHubon, és ismert problémának találtam,A Dapper csapat nem javította meg, mert attól tart, hogy túl nagy hatással lesz, és más szerzők PR-t is adtak a Dappernek, de a céget is bezárták, ahogy az alábbi ábrán látható:
A hiperlink bejelentkezés látható.
A kivétel oka az, hogy miután megkapjuk az önérték-hozzáadott értéket, például az SQL Server adaptert, az cast int típusú hibára kerül, és az int maximális értéke (int. MaxValue): 2147483647, ahogy az alábbi ábrán látható:
A metódus reprodukálásához hozz létre egy új táblát, adjuk hozzá az elsődleges kulcsot 2147483648-től, és az SQL szkript a következő:
A Dapper.Contrib csomagra hivatkozva a következő kóddal hajtsa végre a beillesztési műveletet:
A hiba a következő:
megoldás
Cseréld le a Dapper.Contrib-ot a Dapper.Contrib.Unofficial csomagra a következő parancsval:
A teszt már nem ad hibát, ahogy az alábbi ábrán látható:
Tipp: A Dapper.Contrib.Unofficial nincs teljesen tesztelve, kérlek, teszteld magad a használat előtt!
(Vége)
|