Programovanie

Ako pracovať s Fluent NHibernate v C #

ORM (objektové relačné mapovače) zjednodušujú prístup k dátam vo vašej aplikácii tým, že vám umožňujú písať kód na vykonávanie operácií CRUD (vytváranie, čítanie, aktualizácia a mazanie). Rámec ORM sa už dlho používa na elimináciu nesúladu impedancie, ktorá existuje medzi objektom a dátovými modelmi v aplikácii. ORM vám v podstate umožňujú písať kód na vykonávanie operácií CRUD, bez potreby priamej interakcie s poskytovateľom základnej databázy. Použitie ORM vám teda pomôže izolovať objektový model vašej aplikácie od dátového modelu.

Prečo Fluent NHibernate?

NHibernate ukladá mapovacie informácie vo formáte XML do súborov .hbm - pre každú triedu entít by ste mali mať jeden súbor .hbm. Tento súbor .hbm sa používa na mapovanie entít do zodpovedajúcich databázových tabuliek. Pri používaní aplikácie Fluent NHibernate už nemusíte používať ťažkopádne súbory .hbm.xml, ktoré ste pri práci s NHibernate museli používať.

Fluent NHibernate je staticky kompilovaný a kompilovateľný bezpečný náprotivok populárneho nástroja ORM NHibernate, ktorý je možné použiť na vytvorenie mapovania medzi triedami POCO a motorom NHibernate, vďaka čomu nepotrebujete ťažkopádne súbory XML. Poskytuje rozhranie Fluent API, ktoré vám tiež umožňuje používať LINQ na zisťovanie údajov na vrchu motora NHibernate. V nasledujúcich častiach si povieme, ako môžeme nainštalovať Fluent NHibernate, vytvárať modely, mapovať tieto modely alebo triedy entít a používať Fluent NHibernate na vykonávanie operácií CRUD.

Začíname

Ak chcete začať používať Fluent NHibernate, postupujte takto:

  1. Otvorte vývojové prostredie Visual Studio 2015
  2. Kliknite na Súbor -> Nové -> Projekt
  3. Vytvorte nový projekt - pre jednoduchosť vytvorte aplikáciu Windows
  4. Zadajte názov projektu
  5. Kliknutím na tlačidlo OK projekt uložíte

Teraz, keď bol v Visual Studio vytvorený projekt, možno budete chcieť nainštalovať Fluent NHibernate, aby ste ho mohli použiť vo svojej aplikácii. Ak máte nainštalovaný NuGet, najjednoduchšou možnosťou je inštalácia aplikácie Fluent NHibernate prostredníctvom správcu balíkov NuGet. Ak to chcete urobiť, vyberte projekt v okne Prieskumník riešení, kliknite pravým tlačidlom myši a vyberte možnosť „Spravovať balíčky NuGet…“, aby ste nainštalovali rámec Fluent NHibernate z NuGet.

Práca s Fluent NHibernate

Aby ste mohli pracovať s Fluent NHibernate, bolo by najskôr potrebné vytvoriť triedu modelov. Zvážte nasledujúcu databázovú tabuľku.

VYTVORIŤ TABUĽKU [dbo]. [Produkt]

(

[Id] INT NIE JE NULL ZÁKLADNÝ KLÍČ,

[Meno] VARCHAR (50) NULL,

[Popis] VARCHAR (50) NULL

)

Tu je zodpovedajúca modelová trieda.

verejná trieda Produkt

   {

public virtual int Id {get; sada; }

verejný virtuálny reťazec Názov {get; sada; }

verejný virtuálny reťazec Popis {get; sada; }

   }

Teraz, keď je databázová tabuľka a zodpovedajúca modelová trieda pripravená, ďalším krokom je vytvorenie potrebného mapovania. Na mapovanie entity vo Fluent NHibernate by ste mali mať zodpovedajúcu triedu mapovania. Takéto triedy mapovania by mali pochádzať z ClassMap, kde T predstavuje entitu, ktorú používate. Fluent NHibernate používa triedy C # so silným typom na mapovanie vlastností tried modelov do zodpovedajúcich polí databázových tabuliek.

Tu je trieda mapovania s názvom ProductMap.

verejná trieda ProductMap: ClassMap

   {

verejná mapa produktu ()

       {

Id (x => x.Id);

Mapa (x => x.Name);

Mapa (x => x.Popis);

Tabuľka („Produkt“);

       }

   }

Ďalším krokom je vytvorenie triedy pomocníka na pripojenie k našej databáze. Takto by vyzerala táto trieda:

verejná statická trieda FluentNHibernateHelper

   {

verejná statická ISession OpenSession ()

       {

string connectionString = "Sem napíšte reťazec vášho pripojenia k databáze";

ISessionFactory sessionFactory = Plynule.Configure ()

.Databáza (MsSqlConfiguration.MsSql2012

.ConnectionString (connectionString) .ShowSql ()

               )

.Mappings (m =>

m.FluentMappings

.AddFromAssemblyOf ())

.ExposeConfiguration (cfg => nový SchemaExport (cfg)

.Create (false, false))

.BuildSessionFactory ();

vrátiť sessionFactory.OpenSession ();

       }

   }

Všimnite si volanie sessionFactory.OpenSession () v poslednom príkaze - toto volanie skutočne vytvorí reláciu komunikácie s podkladovou databázou, t. J. Otvorí pripojenie k používanej databáze. Teraz môžete vyvolať statickú metódu FluentNHibernateHelper.OpenSession () a otvoriť pripojenie k databáze. Nasledujúci úryvok kódu ilustruje, ako môžete využiť triedu pomocníka vytvorenú skôr na pridanie záznamu o produkte do tabuľky databázy produktov.

static void Main (reťazec [] args)

       {

pomocou (var session = FluentNHibernateHelper.OpenSession ())

           {

var product = new Product {Name = "Lenovo Laptop", Description = "Sample product"};

session.SaveOrUpdate (produkt);

           }

       }

Nasledujúci úryvok kódu ukazuje, ako môžete dopytovať údaje z databázy pomocou našej pomocnej triedy Fluent NHibernate.

pomocou (relácie ISession = FluentNHibernateHelper.OpenSession ())

           {

var products = session.Query (). ToList ();

// Obvyklý kód

           }

Ak chcete pracovať s príkladmi kódu uvedenými v tomto článku, mali by ste sa ubezpečiť, že do vašej triedy boli pridané nasledujúce priestory názvov.

  • pomocou FluentNHibernate.Cfg;
  • pomocou FluentNHibernate.Cfg.Db;
  • použitím NHibernate;
  • použitím NHibernate.Linq;
  • pomocou NHibernate.Tool.hbm2ddl;
  • pomocou System.Linq;

Ďalšie informácie o práci s Fluent NHibernate nájdete na stránkach GitHub.

$config[zx-auto] not found$config[zx-overlay] not found