Kako koristiti Dapper ORM u C #

Objektni relacijski maperi (ORM) koriste se već duže vrijeme za uklanjanje neusklađenosti impedancije koja postoji između objektnih modela programskih jezika i podatkovnih modela u relacijskim bazama podataka. Dapper je otvoreni izvor, lagan ORM koji je razvio tim Stack Overflowa. Dapper je vrlo brz u usporedbi s drugim ORM-ima prvenstveno zbog svoje male težine.

Dapper je napravljen imajući na umu performanse i jednostavnost upotrebe. Pruža podršku za statičko i dinamičko vezivanje objekata pomoću transakcija, pohranjenih procedura ili skupnih umetanja podataka.

Instalirajte Dapper ORM u Visual Studio

Da biste započeli koristiti Dapper, slijedite ove korake:

  1. Otvorite Visual Studio 
  2. Kliknite Datoteka -> Novo -> Projekt
  3. Odaberite "Web -> ASP.Net web aplikacija" u dijaloškom okviru "Novi projekt"
  4. Navedite naziv web projekta
  5. Odaberite prazan predložak projekta za ASP.Net
  6. Kliknite U redu da biste spremili projekt

Ovo stvara prazan projekt web aplikacije ASP.Net.

Ako imate instaliran NuGet, Dapper možete instalirati pomoću NuGet-a - samo odaberite projekt u prozoru Solution Explorer, desnom tipkom miša kliknite "Manage NuGet Packages ..." i pronađite Dapper. Zatim kliknite Instaliraj da biste započeli instalaciju Dappera. Nakon što je Dapper uspješno instaliran, spremni ste za početak.

CRUD u .Netu koristeći Dapper ORM

Napišimo sada neki kod pomoću Dappera za izvođenje CRUD operacija protiv baze podataka. Razmotrimo bazu podataka koja sadrži tablicu koja se zove Autor sa sljedećim poljima.

  • iskaznica
  • Ime
  • Prezime

Trebali biste stvoriti klasu entiteta (POCO klasa) za ovu tablicu baze podataka radi jednostavnosti pri radu s Dapperom. Evo klase entiteta pod nazivom Autor koja odgovara tablici Autor u bazi podataka.

public class Author

    {

        public int Id { get; set; }

        public string FirstName { get; set; }

        public string LastName { get; set; }

    }

Način Query()proširenja u Dapperu omogućuje vam preuzimanje podataka iz baze podataka i popunjavanje podataka u vašem objektnom modelu. Sljedeća metoda dohvaća sve zapise iz tablice Autor, sprema ih u memoriju i vraća kolekciju.

public List ReadAll()

{

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

         {

            return db.Query

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

        }

    }

Imajte na umu da biste trebali uključiti prostor imena Dapper u svoj program kako biste iskoristili okvir Dapper.

Sljedeća metoda ilustrira kako možete pretraživati ​​određeni zapis iz tablice Autor.

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();

        }

    }

Execute()Metoda dotjeran okvira može se koristiti za umetanje, ažuriranje ili brisanje podataka u bazu podataka. Ova metoda vraća cjelobrojnu vrijednost koja podrazumijeva broj redaka na koje je utjecalo izvršavanje upita.

Sljedeća metoda ilustrira kako možete ažurirati zapis koristeći Dapper framework.

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;

        }

    }

Kao što možete vidjeti u gornjem isječku koda, Update()metoda vraća broj redaka na koje je to utjecalo, što znači broj zapisa koji su ažurirani. U ovom je primjeru ažuriran samo jedan zapis i stoga bi metoda vratila 1 na uspjeh.

Pohranjeni postupci pomoću Dapper ORM-a

Da biste radili s pohranjenim procedurama pomoću Dappera, trebali biste izričito spomenuti vrstu naredbe prilikom pozivanja Queryili Executemetoda. Evo primjera koji pokazuje kako možete koristiti pohranjene procedure s Dapperom.

 public List Read()

    {

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

        {

            string readSp;

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

        }

    }

Dapper framework također podržava transakcije, tj. Po potrebi možete koristiti transakcijske operacije. Da biste to učinili, možete iskoristiti metode BeginTransaction()i EndTransaction()metode kao što to obično radite kada radite s transakcijama u ADO.Netu. Tada biste trebali napisati svoje transakcijske izvode unutar poziva BeginTransactioni EndTransactionmetode.

Dapper micro ORM izuzetno je lagan i jednostavan za upotrebu. Ne generira vaš SQL za vas, ali olakšava mapiranje rezultata upita na vaše POCO-ove (obični stari CLR objekti). Najbolje od svega je što postižete puno veću brzinu izvršavanja nego što to radite s Entity Frameworkom - zapravo gotovo istim kao i ADO.Net. 

-

Učinite više sa C #:

  • Kako raditi s AutoMapperom u C #
  • Kada koristiti apstraktnu klasu naspram sučelja u C #
  • Kako raditi s nitima u C #
  • Kako koristiti Dapper ORM u C #
  • Kako implementirati obrazac dizajna spremišta u C #
  • Kako implementirati jednostavni zapisnik u C #
  • Kako raditi s delegatima u C #
  • Kako raditi s delegatima Action, Func i Predicate u C #
  • Kako raditi s log4netom na C #
  • Kako raditi s refleksijom u C #