Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 3345|Yanıt: 1

[Kaynak] Dapper.Contrib hatası çözüldü: "Değer Int32 için çok büyük ya da çok küçük"

[Bağlantıyı kopyala]
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
 Ev sahibi| Yayınlandı 6.08.2023 14:14:21 |
Değiştirilmiş GitHub adresi:https://github.com/itsvse/Dapper.Contrib
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com