Programiranje

Kako uporabljati Dapper ORM v C #

Predmetni relacijski preslikavalci objektov (ORM) se že dolgo uporabljajo za odpravo neusklajenosti impedance med objektnimi modeli programskih jezikov in podatkovnimi modeli v relacijskih zbirkah podatkov. Dapper je odprtokodni, lahki ORM, ki ga je razvila ekipa Stack Overflow. Dapper je v primerjavi z drugimi ORM-ji zelo hiter predvsem zaradi majhne teže.

Dapper je bil zgrajen z mislijo na zmogljivost in enostavnost uporabe. Ponuja podporo za statično in dinamično vezavo predmetov z uporabo transakcij, shranjenih postopkov ali množičnih vstavkov podatkov.

Namestite Dapper ORM v Visual Studio

Če želite začeti uporabljati Dapper, sledite tem korakom:

  1. Odprite Visual Studio
  2. Kliknite Datoteka -> Novo -> Projekt
  3. V pogovornem oknu »Nov projekt« izberite »Splet -> Spletna aplikacija ASP.Net«
  4. Določite ime spletnega projekta
  5. Izberite prazno predlogo projekta za ASP.Net
  6. Kliknite V redu, da shranite projekt

To ustvari prazen projekt spletne aplikacije ASP.Net.

Če imate nameščen NuGet, lahko Dapper namestite s pomočjo NuGet-a - samo izberite projekt v oknu Solution Explorer, z desno miškino tipko kliknite "Upravljanje paketov NuGet ..." in poiščite Dapper. Nato kliknite Namesti, da začnete namestiti Dapper. Ko je Dapper uspešno nameščen, ste pripravljeni.

CRUD v .Net z uporabo Dapper ORM

Zdaj zapišimo nekaj kode z uporabo Dapperja za izvajanje CRUD operacij proti zbirki podatkov. Razmislite o zbirki podatkov z imenom, ki vsebuje tabelo z imenom Author z naslednjimi polji.

  • ID
  • Ime
  • Priimek

Za poenostavitev pri delu z Dapperjem morate za to tabelo baze podatkov ustvariti razred entitete (razred POCO). Tu je razred entitete z imenom Author, ki ustreza tabeli Author v bazi podatkov.

javni razred Avtor

    {

public int Id {get; set; }

javni niz FirstName {get; set; }

javni niz LastName {get; set; }

    }

The Poizvedba () metoda razširitve v Dapperju omogoča pridobivanje podatkov iz baze podatkov in nalaganje podatkov v vaš objektni model. Naslednja metoda pridobi vse zapise iz tabele Author, jih shrani v pomnilnik in vrne zbirko.

javni seznam ReadAll ()

{

z uporabo (IDbConnection db = new SqlConnection (ConfigurationManager.ConnectionStrings ["AdventureWorks"]. ConnectionString))

         {

vrni db.Query

(“Izberite * Od avtorja”). ToList ();

        }

    }

Upoštevajte, da bi morali v svoj program vključiti imenski prostor Dapper, da izkoristite ogrodje Dapper.

Naslednja metoda prikazuje, kako lahko po določenem zapisu iščete po tabeli Author.

javna avtorjeva najdba (int id)

    {

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

        {

return db.Query ("Izberi * Od avtorja" +

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

        }

    }

The Izvedi () metoda Dapper ogrodja se lahko uporablja za vstavljanje, posodabljanje ali brisanje podatkov v zbirko podatkov. Ta metoda vrne celoštevilčno vrednost, ki pomeni število vrstic, na katere je vplivala izvedba poizvedbe.

Naslednja metoda prikazuje, kako lahko posodabljate zapis z uporabo okvira Dapper.

javna int posodobitev (avtor avtorja)

    {

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

        {

niz sqlQuery +

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

int rowAffected = db.Execute (sqlQuery, avtor);

vrni vrsticeAffected;

        }

    }

Kot lahko vidite v zgornjem delčku kode, Nadgradnja() metoda vrne število vrstic, ki so bile prizadete, kar pomeni število zapisov, ki so bili posodobljeni. V tem primeru je bil posodobljen le en zapis, zato bi metoda ob uspehu vrnila 1.

Shranjeni postopki z uporabo Dapper ORM

Če želite delati s shranjenimi postopki z uporabo Dapperja, morate pri klicanju izrecno omeniti vrsto ukaza Poizvedba ali Izvedite metode. Tu je primer, ki prikazuje, kako lahko uporabljate shranjene postopke z Dapperjem.

 javni seznam Read ()

    {

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

        {

niz readSp;

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

        }

    }

Okvir Dapper podpira tudi transakcije, tj. Po potrebi lahko uporabite transakcijske operacije. Če želite to narediti, lahko izkoristite BeginTransaction () in EndTransaction () metode, kot običajno pri delu s transakcijami v ADO.Net. Nato bi morali svoje transakcijske izpiske napisati znotraj BeginTransaction in EndTransaction klici metode.

Dapper micro ORM je izjemno lahek in enostaven za uporabo. Ne ustvarja vašega SQL za vas, ampak olajša preslikavo rezultatov poizvedb v vaše POCO-je (navadne stare predmete CLR). Najboljše od vsega je, da dosežete veliko hitrejšo hitrost izvajanja kot z Entity Framework - pravzaprav skoraj enako kot ADO.Net.

Naredite več s C #:

  • Kako delati z AutoMapper v C #
  • Kdaj uporabiti abstraktni razred v primerjavi z vmesnikom v jeziku C #
  • Kako delati z nitmi v jeziku C #
  • Kako uporabljati Dapper ORM v C #
  • Kako implementirati vzorec oblikovanja repozitorija v C #
  • Kako implementirati preprost zapisovalnik v jeziku C #
  • Kako delati z delegati v C #
  • Kako delati z delegati Action, Func in Predicate v C #
  • Kako delati z log4net v C #
  • Kako delati z refleksijo v jeziku C #