Cara menggunakan Dapper ORM di C #

Pemetaan relasional objek (ORM) telah digunakan sejak lama untuk menghilangkan ketidaksesuaian impedansi yang ada antara model objek bahasa pemrograman dan model data dalam database relasional. Dapper adalah open source, ORM ringan yang dikembangkan oleh tim Stack Overflow. Dapper sangat cepat dibandingkan dengan ORM lain terutama karena bobotnya yang ringan.

Dapper dibangun dengan mempertimbangkan kinerja dan kemudahan penggunaan. Ini memberikan dukungan untuk pengikatan objek statis dan dinamis menggunakan transaksi, prosedur tersimpan, atau penyisipan data massal.

Instal Dapper ORM di Visual Studio

Untuk mulai menggunakan Dapper, ikuti langkah-langkah berikut:

  1. Buka Visual Studio 
  2. Klik File -> New -> Project
  3. Pilih "Web -> ASP.Net Web Application" dari dialog "New Project"
  4. Tentukan nama untuk proyek web
  5. Pilih template proyek kosong untuk ASP.Net
  6. Klik OK untuk menyimpan proyek

Ini membuat proyek aplikasi web ASP.Net kosong.

Jika Anda telah menginstal NuGet, Anda dapat menginstal Dapper menggunakan NuGet — cukup pilih proyeknya di jendela Solution Explorer, klik kanan pada "Kelola Paket NuGet ..." dan temukan Dapper. Kemudian klik Install untuk memulai instalasi Dapper. Setelah Dapper berhasil diinstal, Anda siap melakukannya.

CRUD in .Net menggunakan Dapper ORM

Sekarang mari kita menulis beberapa kode menggunakan Dapper untuk melakukan operasi CRUD terhadap database. Pertimbangkan database bernama yang berisi tabel bernama Penulis dengan bidang berikut ini.

  • Indo
  • Nama depan
  • Nama keluarga

Anda harus membuat kelas entitas (kelas POCO) untuk tabel database ini agar lebih mudah saat bekerja dengan Dapper. Berikut adalah kelas entitas bernama Penulis yang sesuai dengan tabel Penulis di database.

public class Author

    {

        public int Id { get; set; }

        public string FirstName { get; set; }

        public string LastName { get; set; }

    }

The Query()metode ekstensi di Dapper memungkinkan Anda untuk mengambil data dari database dan populate data dalam model objek Anda. Metode berikut mengambil semua catatan dari tabel Penulis, menyimpannya dalam memori, dan mengembalikan koleksi.

public List ReadAll()

{

         using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings[“AdventureWorks”].ConnectionString))

         {

            return db.Query

             (“Select * From Author”).ToList();

        }

    }

Perhatikan bahwa Anda harus menyertakan namespace Dapper dalam program Anda untuk memanfaatkan kerangka kerja Dapper.

Metode berikut mengilustrasikan bagaimana Anda bisa mencari rekaman tertentu dari tabel Penulis.

public Author Find(int id)    

    {

        using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))

        {

            return db.Query(“Select * From Author “ + 

            WHERE Id = @Id”, new { id }).SingleOrDefault();

        }

    }

The Execute()metode kerangka Dapper dapat digunakan untuk insert, update, atau data delete ke dalam database. Metode ini mengembalikan nilai integer yang menyiratkan jumlah baris yang terpengaruh pada eksekusi kueri.

Metode berikut mengilustrasikan bagaimana Anda dapat memperbarui record menggunakan framework Dapper.

public int Update(Author author)

    {

        using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))

        {

            string sqlQuery +

            “ LastName = @LastName “ + “WHERE Id = @Id”;

            int rowsAffected = db.Execute(sqlQuery, author);

            return rowsAffected;

        }

    }

Seperti yang Anda lihat pada potongan kode di atas, Update()metode ini mengembalikan jumlah baris yang terpengaruh, yang berarti jumlah record yang telah diperbarui. Dalam contoh ini, hanya satu catatan yang telah diperbarui dan karenanya metode tersebut akan mengembalikan 1 jika berhasil.

Prosedur yang disimpan menggunakan Dapper ORM

Untuk bekerja dengan prosedur tersimpan menggunakan Dapper, Anda harus menyebutkan jenis perintah secara eksplisit saat memanggil Queryatau Executemetode. Berikut adalah contoh yang menunjukkan bagaimana Anda dapat menggunakan prosedur tersimpan dengan Dapper.

 public List Read()

    {

        using (IDbConnection db = new SqlConnection (ConfigurationManager.ConnectionStrings [“AdventureWorks”].ConnectionString))

        {

            string readSp;

            return db.Query(readSp, commandType: CommandType.StoredProcedure).ToList();

        }

    }

Kerangka Dapper juga mendukung transaksi, yaitu Anda dapat menggunakan operasi transaksional jika diperlukan. Untuk melakukan ini, Anda dapat memanfaatkan metode BeginTransaction()dan EndTransaction()seperti yang biasa Anda lakukan saat menangani transaksi di ADO.Net. Anda kemudian perlu menulis pernyataan transaksional Anda di dalam pemanggilan metode BeginTransactiondan EndTransaction.

Micro ORM Dapper sangat ringan dan mudah digunakan. Itu tidak menghasilkan SQL Anda untuk Anda, tetapi membuatnya mudah untuk memetakan hasil kueri ke POCO Anda (objek CLR biasa yang lama). Yang terbaik dari semuanya, Anda mendapatkan kecepatan eksekusi yang jauh lebih cepat daripada yang Anda lakukan dengan Entity Framework — hampir sama dengan ADO.Net, pada kenyataannya. 

-

Lakukan lebih banyak dengan C #:

  • Bagaimana bekerja dengan AutoMapper di C #
  • Kapan menggunakan kelas abstrak vs. antarmuka di C #
  • Cara bekerja dengan utas di C #
  • Cara menggunakan Dapper ORM di C #
  • Bagaimana menerapkan pola desain repositori di C #
  • Bagaimana menerapkan logger sederhana di C #
  • Bagaimana bekerja dengan delegasi di C #
  • Cara bekerja dengan delegasi Action, Func, dan Predicate di C #
  • Bagaimana bekerja dengan log4net di C #
  • Bagaimana bekerja dengan refleksi di C #