Programování

Jak používat Dapper ORM v C #

Objektové relační mapovače (ORM) se používají již dlouhou dobu, aby se odstranil nesoulad impedance, který existuje mezi objektovými modely programovacích jazyků a datovými modely v relačních databázích. Dapper je open source, lehký ORM vyvinutý týmem Stack Overflow. Dapper je velmi rychlý ve srovnání s jinými ORM především kvůli své nízké hmotnosti.

Dapper byl postaven s ohledem na výkon a snadné použití. Poskytuje podporu pro statické i dynamické vázání objektů pomocí transakcí, uložených procedur nebo hromadných vložení dat.

Nainstalujte Dapper ORM do Visual Studio

Chcete-li začít používat Dapper, postupujte takto:

  1. Otevřete Visual Studio
  2. Klikněte na Soubor -> Nový -> Projekt
  3. V dialogovém okně „Nový projekt“ vyberte „Web -> Webová aplikace ASP.Net“
  4. Zadejte název webového projektu
  5. Vyberte prázdnou šablonu projektu pro ASP.Net
  6. Kliknutím na OK projekt uložíte

Tím se vytvoří prázdný projekt webové aplikace ASP.Net.

Pokud máte nainstalovaný NuGet, můžete nainstalovat Dapper pomocí NuGet - stačí vybrat projekt v okně Průzkumníka řešení, kliknout pravým tlačítkem na „Spravovat balíčky NuGet ...“ a najít Dapper. Poté klikněte na Instalovat a spusťte instalaci Dapperu. Jakmile bude Dapper úspěšně nainstalován, můžete jít.

CRUD v .Net pomocí Dapper ORM

Pojďme nyní napsat nějaký kód pomocí Dappera k provedení operací CRUD proti databázi. Zvažte databázi s názvem, která obsahuje tabulku nazvanou Autor s následujícími poli.

  • ID
  • Jméno
  • Příjmení

Pro tuto databázovou tabulku byste měli pro jednoduchost vytvořit třídu entit (třídu POCO) při práci s Dapperem. Tady je třída entit s názvem Autor, která odpovídá tabulce Autor v databázi.

veřejná třída Autor

    {

public int Id {get; soubor; }

public string FirstName {get; soubor; }

veřejný řetězec Příjmení {get; soubor; }

    }

The Dotaz() metoda rozšíření v Dapperu vám umožňuje načíst data z databáze a naplnit data ve vašem objektovém modelu. Následující metoda načte všechny záznamy z tabulky Autor, uloží je do paměti a vrátí kolekci.

veřejný seznam ReadAll ()

{

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

         {

vrátit db.Query

(„Vybrat * od autora“). ToList ();

        }

    }

Všimněte si, že byste měli do svého programu zahrnout jmenný prostor Dapper, abyste využili rámec Dapper.

Následující metoda ukazuje, jak můžete vyhledat konkrétní záznam z tabulky Autor.

veřejné hledání autora (int id)

    {

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

        {

vrátit db.Query („Vybrat * Od autora“ +

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

        }

    }

The Vykonat() k vkládání, aktualizaci nebo mazání dat do databáze lze použít metodu rámce Dapper. Tato metoda vrací celočíselnou hodnotu, která implikuje počet řádků, které byly ovlivněny při provádění dotazu.

Následující metoda ukazuje, jak můžete aktualizovat záznam pomocí rozhraní Dapper.

public int Update (autor autor)

    {

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

        {

řetězec sqlQuery +

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

int linesAffected = db.Execute (sqlQuery, autor);

vrátit řádky Ovlivněno;

        }

    }

Jak vidíte ve výše uvedeném fragmentu kódu, Aktualizace() metoda vrací počet řádků, které byly ovlivněny, což znamená počet záznamů, které byly aktualizovány. V tomto příkladu byl aktualizován pouze jeden záznam, a proto by metoda při úspěchu vrátila 1.

Uložené procedury pomocí Dapper ORM

Chcete-li pracovat s uloženými procedurami pomocí Dapperu, měli byste výslovně uvést typ příkazu při volání Dotaz nebo Vykonat metody. Zde je příklad, který ukazuje, jak můžete použít uložené procedury s Dapperem.

 přečtení veřejného seznamu ()

    {

pomocí (IDbConnection db = nový SqlConnection (ConfigurationManager.ConnectionStrings[„AdventureWorks“]. ConnectionString))

        {

řetězec readSp;

vrátit db.Query (readSp,commandType: CommandType.StoredProcedure) .ToList ();

        }

    }

Rámec Dapper také podporuje transakce, tj. V případě potřeby můžete použít transakční operace. K tomu můžete využít výhod BeginTransaction () a EndTransaction () metody jako obvykle při práci s transakcemi v ADO.Net. Pak byste museli napsat své transakční výpisy uvnitř BeginTransaction a EndTransaction volání metod.

Dapper micro ORM je extrémně lehký a snadno se používá. Negeneruje pro vás SQL, ale usnadňuje mapování výsledků dotazů na vaše POCO (obyčejné staré objekty CLR). Nejlepší ze všeho je, že získáte mnohem vyšší rychlost provádění než u Entity Framework - ve skutečnosti téměř stejné jako ADO.Net.

Udělejte více s C #:

  • Jak pracovat s AutoMapperem v C #
  • Kdy použít abstraktní třídu vs. rozhraní v C #
  • Jak pracovat s vlákny v C #
  • Jak používat Dapper ORM v C #
  • Jak implementovat vzor návrhu úložiště v C #
  • Jak implementovat jednoduchý záznamník v C #
  • Jak pracovat s delegáty v C #
  • Jak pracovat s delegáty Action, Func a Predicate v C #
  • Jak pracovat s log4net v C #
  • Jak pracovat s odrazem v C #