Prasības: Izmantojot Dapper.Contrib, lai izpildītu Insert metodi, viena ievietotā datu atgrieztā vērtība pašpalielinošajam primārās atslēgas laukam ir vērtība pēc ievietošanas, un, ja atgrieztā vērtība ir lielāka par 2147483647, Dapper.Contrib izmetīs izņēmumu "Vērtība ir pārāk liela vai pārāk maza Int32".
Izmantojot Dapper.Contrib, lai ievietotu datus, parādās kļūda "Int32 vērtība ir pārāk liela vai pārāk maza", un datu bāze ir veiksmīgi ievietota! aizdomas, ka tā ir problēma ar ORM ietvaru, pēc tam meklēja GitHub un konstatēja, ka tā ir zināma problēma,Dapper komanda to nav novērsusi, jo uztraucas, ka tas būs pārāk ietekmīgs, un citi autori ir snieguši PR Dapper, bet tas arī ir slēgts, kā parādīts attēlā:
Hipersaites pieteikšanās ir redzama.
Izņēmuma iemesls ir tāds, ka pēc pašpievienotās vērtības iegūšanas, kā piemēru ņemot SQL Server adapteri, raidījums tiek nodots int tipa kļūdai, un maksimālā int vērtība ir (int. MaxValue): 2147483647, kā parādīts zemāk redzamajā attēlā:
Lai reproducētu metodi, izveidojiet jaunu tabulu, pievienojiet primāro atslēgu, sākot no 2147483648, un SQL skripts ir šāds:
Atsaucoties uz Dapper.Contrib pakotni, veiciet ievietošanas operāciju ar šādu kodu:
Kļūda ir šāda:
šķīdums
Aizstājiet Dapper.Contrib ar Dapper.Contrib.Unofficial pakotni ar šādu komandu:
Tests vairs nedod kļūdu, kā parādīts šajā attēlā:
Padoms: Dapper.Contrib.Unofficial nav pilnībā pārbaudīts, lūdzu, pārbaudiet to pats pirms lietošanas!
(Beigas)
|