Saya tertarik menggunakan Dapper - tetapi dari apa yang saya tahu itu hanya mendukung Query dan Execute. Saya tidak melihat bahwa Dapper termasuk cara Memasukkan dan Memperbarui objek.
Mengingat bahwa proyek kami (sebagian besar proyek?) Perlu melakukan sisipan dan pembaruan, apa praktik terbaik untuk melakukan Sisipan dan Pembaruan bersama necis?
Lebih disukai kita tidak perlu menggunakan metode ADO.NET untuk membangun parameter, dll.
Jawaban terbaik yang dapat saya temukan pada saat ini adalah menggunakan LinqToSQL untuk memasukkan dan memperbarui. Apakah ada jawaban yang lebih baik?
Jawaban:
Kami sedang membangun beberapa pembantu, masih memutuskan API dan apakah ini berjalan pada intinya atau tidak. Lihat: https://code.google.com/archive/p/dapper-dot-net/issues/6 untuk kemajuan.
Sementara itu, Anda dapat melakukan hal berikut
dan sebagainya
Lihat juga posting blog saya: Masalah INSERT yang menjengkelkan itu
Memperbarui
Seperti yang ditunjukkan dalam komentar, sekarang ada beberapa ekstensi yang tersedia di proyek Dapper.Contrib dalam bentuk
IDbConnection
metode ekstensi ini :sumber
set
ascnn.Execute("update Table SET val = @val where Id = @id", new {val, id = 1});
atau apakah ini necis spesifik? Saya baru mengenal necis dan sedang mencari contoh pembaruan :)var updateCat = connection.Execute("UPDATE tCategories SET sCategory = @val WHERE iCategoryID = @id", new { val = "dapper test", id = 23 });
dan itu berhasil. Tanpa menggunakan SET saya mendapatkan kesalahan sintaks SQLException dekat sCategory.Melakukan operasi CRUD menggunakan Dapper adalah tugas yang mudah. Saya telah menyebutkan contoh di bawah ini yang dapat membantu Anda dalam operasi CRUD.
Kode untuk C RUD:
Metode # 1: Metode ini digunakan ketika Anda memasukkan nilai dari entitas yang berbeda.
Metode # 2: Metode ini digunakan ketika properti entitas Anda memiliki nama yang sama dengan kolom SQL. Jadi, Dapper menjadi properti entitas peta ORM dengan kolom SQL yang cocok.
Kode untuk C R UD:
Kode untuk CR U D:
Kode untuk CRU D :
sumber
Anda bisa melakukannya dengan cara seperti ini:
sumber
using-statement
sehingga koneksi menjadi tertutup bahkan dalam kasus pengecualian.sqlConnection.Execute(sqlQuery, customerEntity);
sqlConnection.Execute(sqlQuery, customerEntity);
Menggunakan Dapper.Contrib semudah ini:
Sisipkan daftar:
Sisipkan tunggal:
Perbarui daftar:
Perbarui tunggal:
Sumber: https://github.com/StackExchange/Dapper/tree/master/Dapper.Contrib
sumber
conn.Update(yourClass)
jika beberapa sifat yang nol , maka UPDATE ladang untuk NULL ? Tidak bekerja Perbarui bidang ke NULL .Not partials updates
Anda juga dapat menggunakan necis dengan prosedur tersimpan dan cara umum yang dengannya semuanya mudah dikelola.
Tentukan koneksi Anda:
Buat antarmuka untuk menentukan metode Dapper yang sebenarnya Anda butuhkan:
Implementasikan antarmuka:
Anda sekarang dapat menelepon dari model sesuai kebutuhan Anda:
Anda juga dapat mengirimkan parameter:
Sekarang telepon dari pengontrol Anda:
Semoga itu mencegah pengulangan kode Anda dan memberikan keamanan;
sumber
Anda dapat mencoba ini:
sumber