Persyaratan: Saat menggunakan Dapper.Contrib untuk menjalankan metode Insert, nilai yang ditampilkan dari satu data yang disisipkan untuk bidang kunci primer yang bertambah sendiri adalah nilai setelah penyisipan, dan ketika nilai yang dikembalikan lebih besar dari 2147483647, Dapper.Contrib akan melemparkan pengecualian "Nilainya terlalu besar atau terlalu kecil untuk Int32".
Saat menggunakan Dapper.Contrib untuk menyisipkan data, kesalahan "Nilainya terlalu besar atau terlalu kecil untuk Int32", dan database telah berhasil dimasukkan! menduga itu adalah masalah dengan kerangka kerja ORM, lalu mencari di GitHub dan menemukannya sebagai masalah yang diketahui,Tim Dapper belum memperbaikinya karena khawatir akan terlalu berdampak, dan penulis lain telah memberikan PR kepada Dapper, tetapi juga telah ditutup, seperti yang ditunjukkan pada gambar di bawah ini:
Login hyperlink terlihat.
Alasan pengecualian adalah bahwa setelah mendapatkan nilai tambah sendiri, mengambil adaptor SQL Server sebagai contoh, transmisi ditransmisikan ke kesalahan tipe int, dan nilai maksimum int adalah (int. MaxValue): 2147483647, seperti yang ditunjukkan pada gambar di bawah ini:
Untuk mereproduksi metode, buat tabel baru, tambahkan kunci primer mulai dari 2147483648, dan skrip SQL adalah sebagai berikut:
Mereferensikan paket Dapper.Contrib, lakukan operasi sisipan dengan kode berikut:
Kesalahannya adalah sebagai berikut:
larutan
Ganti Dapper.Contrib dengan paket Dapper.Contrib.Unofficial dengan perintah berikut:
Pengujian tidak lagi memberikan kesalahan, seperti yang ditunjukkan pada gambar berikut:
Tip: Dapper.Contrib.Unofficial belum sepenuhnya diuji, silakan uji sendiri sebelum menggunakannya!
(Akhir)
|