Cara menggunakan Dapper ORM di C #

Pemeta relasional objek (ORM) telah digunakan untuk waktu yang lama untuk menghilangkan ketidaksesuaian impedansi yang ada antara model objek bahasa pengaturcaraan dan model data dalam pangkalan data relasional. Dapper adalah sumber terbuka, ORM ringan yang dikembangkan oleh pasukan Stack Overflow. Dapper sangat pantas berbanding dengan ORM lain terutamanya kerana beratnya yang ringan.

Dapper dibangun dengan mempertimbangkan prestasi dan kemudahan penggunaan. Ini memberikan sokongan untuk pengikatan objek statik dan dinamis menggunakan transaksi, prosedur tersimpan, atau sisipan data secara besar-besaran.

Pasang Dapper ORM di Visual Studio

Untuk mula menggunakan Dapper, ikuti langkah berikut:

  1. Buka Visual Studio 
  2. Klik pada Fail -> Baru -> Projek
  3. Pilih "Web -> Aplikasi Web ASP.Net" dari dialog "Projek Baru"
  4. Tentukan nama untuk projek web
  5. Pilih templat projek kosong untuk ASP.Net
  6. Klik OK untuk menyimpan projek

Ini membuat projek aplikasi web ASP.Net kosong.

Sekiranya anda memasang NuGet, anda boleh memasang Dapper menggunakan NuGet — pilih saja projek di tetingkap Penyelesaian Penyelesaian, klik kanan pada “Uruskan Pakej NuGet ...” dan cari Dapper. Kemudian klik pada Install untuk memulakan pemasangan Dapper. Setelah Dapper berjaya dipasang, anda boleh pergi.

CRUD di .Net menggunakan Dapper ORM

Mari sekarang tulis beberapa kod menggunakan Dapper untuk melakukan operasi CRUD terhadap pangkalan data. Pertimbangkan pangkalan data bernama yang mengandungi jadual bernama Pengarang dengan bidang berikut.

  • ID
  • Nama pertama
  • Nama terakhir

Anda harus membuat kelas entiti (kelas POCO) untuk jadual pangkalan data ini untuk kesederhanaan ketika bekerja dengan Dapper. Inilah kelas entiti bernama Pengarang yang sesuai dengan jadual Pengarang dalam pangkalan data.

public class Author

    {

        public int Id { get; set; }

        public string FirstName { get; set; }

        public string LastName { get; set; }

    }

The Query()kaedah sambungan dalam Dapper membolehkan anda untuk mengambil data dari data pangkalan data dan mengisi dalam model objek anda. Kaedah berikut mengambil semua rekod dari jadual Pengarang, 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 bahawa anda harus memasukkan ruang nama Dapper dalam program anda untuk memanfaatkan kerangka Dapper.

Kaedah berikut menggambarkan bagaimana anda dapat mencari rekod tertentu dari jadual Pengarang.

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()kaedah rangka kerja Dapper yang boleh digunakan untuk insert, maklumat atau data padam ke dalam pangkalan data. Kaedah ini mengembalikan nilai integer yang menyiratkan bilangan baris yang telah dipengaruhi semasa pelaksanaan pertanyaan.

Kaedah berikut menggambarkan bagaimana anda boleh mengemas kini rekod menggunakan kerangka 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 dalam coretan kod di atas, Update()kaedah ini mengembalikan bilangan baris yang telah dipengaruhi, yang bermaksud jumlah rekod yang telah diperbaharui. Dalam contoh ini, hanya satu rekod yang telah dikemas kini dan dengan itu kaedahnya akan menghasilkan 1 kejayaan.

Prosedur yang disimpan menggunakan Dapper ORM

Untuk bekerja dengan prosedur yang tersimpan menggunakan Dapper, anda harus menyebutkan jenis perintah dengan jelas ketika memanggil Queryatau Executekaedah. Berikut adalah contoh yang menunjukkan bagaimana anda boleh 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 menyokong transaksi, iaitu, anda dapat menggunakan operasi transaksi jika diperlukan. Untuk melakukan ini, anda boleh memanfaatkan BeginTransaction()dan EndTransaction()kaedah seperti yang biasa anda lakukan ketika bekerja dengan transaksi di ADO.Net. Anda kemudian perlu menulis pernyataan transaksi anda di dalam BeginTransactiondan EndTransactionkaedah panggilan.

ORP mikro Dapper sangat ringan dan mudah digunakan. Ia tidak menghasilkan SQL anda untuk anda, tetapi memudahkan untuk memetakan hasil pertanyaan ke POCO anda (objek CLR lama biasa). Yang terbaik, anda mendapat kelajuan pelaksanaan yang jauh lebih pantas daripada yang anda lakukan dengan Entity Framework — sebenarnya sama dengan ADO.Net. 

-

Lakukan lebih banyak perkara dengan C #:

  • Cara bekerja dengan AutoMapper di C #
  • Bilakah menggunakan kelas abstrak vs antara muka dalam C #
  • Cara bekerja dengan benang di C #
  • Cara menggunakan Dapper ORM di C #
  • Cara melaksanakan corak reka bentuk repositori di C #
  • Cara melaksanakan pembalak sederhana di C #
  • Cara bekerja dengan perwakilan di C #
  • Cara bekerjasama dengan delegasi Action, Func, dan Predicate di C #
  • Cara bekerja dengan log4net di C #
  • Cara bekerja dengan refleksi di C #