|
|
Yayınlandı 6.08.2023 14:04:48
|
|
|
|

Gereksinimler: Insert yöntemini çalıştırmak için Dapper.Contrib kullanılırken, kendi kendine artan birincil anahtar alanı için eklenen tek bir verinin dönüş değeri, eklemeden sonraki değerdir ve dönüş değeri 2147483647'den büyük olduğunda, Dapper.Contrib "Değer Int32 için çok büyük veya çok küçük" istisnası atar.
Dapper.Contrib kullanarak veri eklerken "Değer Int32 için çok büyük ya da çok küçük" hatası yazılır ve veritabanı başarıyla eklenmiştir! ORM çerçevesinde bir sorun olduğundan şüphelendim, sonra GitHub'da arama yaptım ve bilinen bir sorun olduğunu buldum,Dapper ekibi bunu düzeltmedi çünkü çok etkili olacağından endişe ediyor ve diğer yazarlar Dapper'a PR sağladı, ancak aynı zamanda kapatıldı, aşağıdaki şekilde gösterildiği gibi:
Bağlantı girişi görünür.
İstisnanın nedeni, SQL Server adaptörünü örnek alarak self-value-added alındıktan sonra castın bir int tipi hatasına atılması ve int değerinin maksimum (int. MaxValue): 2147483647, aşağıdaki şekilde gösterildiği gibi:
Yöntemi yeniden üretmek için yeni bir tablo oluşturun, 2147483648'den başlayan birincil anahtarı ekleyin ve SQL betiği şu şekildedir:
Dapper.Contrib paketine referans vererek, insert işlemini aşağıdaki kodla gerçekleştirin:
Hata şöyledir:
çözüm
Dapper.Contrib'i aşağıdaki komutla Dapper.Contrib.Unofficial paketiyle değiştirin:
Test artık hata vermiyor, aşağıdaki şekilde gösterildiği gibi:
İpucu: Dapper.Contrib.Unofficial tam olarak test edilmedi, lütfen kullanmadan önce kendiniz test edin!
(Son)
|
Önceki:Qv2ray, Windows'ta Trojan-Go servisini bağlarÖnümüzdeki:SQL Server, varchar'ın bigint hatasına dönüştürdüğü verileri bulur
|