Programiranje

Kako delati s tekočim NHibernatom v C #

ORM (objektni relacijski preslikavalci) poenostavljajo dostop do podatkov v vaši aplikaciji, tako da omogočajo pisanje kode za izvajanje CRUD (ustvarjanje, branje, posodobitev in brisanje) operacij. Ogrodja ORM se že dolgo uporabljajo za odpravo neskladnosti impedance, ki obstaja med objektom in podatkovnimi modeli v aplikaciji. V bistvu vam ORM omogočajo pisanje kode za izvajanje CRUD operacij, če ne potrebujete neposrednega stika z osnovnim ponudnikom baz podatkov. Tako vam uporaba ORM-jev pomaga ločiti objektni model vaše aplikacije od podatkovnega modela.

Zakaj tekoči NHibernat?

NHibernate podatke o preslikavi shrani v obliki XML v datotekah .hbm - za vsak razred entitete bi morali imeti eno datoteko .hbm. Ta datoteka .hbm se uporablja za preslikavo entitet v ustrezne tabele zbirke podatkov. Pri uporabi Fluent NHibernate vam ni treba več uporabljati okornih datotek .hbm.xml, ki ste jih morali uporabljati pri delu z NHibernate.

Fluent NHibernate je statično sestavljeno, varno prevedeno orodje priljubljenega ORM orodja NHibernate, ki ga lahko uporabimo za ustvarjanje preslikav med razredi POCO in mehanizmom NHibernate, razen če so potrebne okorne datoteke XML. Ponuja Fluent API, poleg tega pa vam omogoča uporabo LINQ-a za iskanje podatkov na vrhu mehanizma NHibernate. V naslednjih razdelkih bomo razpravljali o tem, kako lahko namestimo Fluent NHibernate, ustvarimo modele, preslikamo te modele ali razrede entitet in uporabimo Fluent NHibernate za izvajanje CRUD operacij.

Kako začeti

Če želite začeti uporabljati tekoči NHibernat, sledite tem korakom:

  1. Odprite Visual Studio 2015 IDE
  2. Kliknite Datoteka -> Novo -> Projekt
  3. Ustvarite nov projekt - zaradi enostavnosti ustvarite aplikacijo Windows
  4. Navedite ime projekta
  5. Kliknite V redu, da shranite projekt

Zdaj, ko je bil projekt ustvarjen v Visual Studio, boste morda želeli namestiti Fluent NHibernate, da ga boste uporabili v svoji aplikaciji. Če imate nameščen NuGet, je najlažja možnost namestitev Fluent NHibernate prek upravitelja paketov NuGet. Če želite to narediti, izberite projekt v oknu Solution Explorer, z desno miškino tipko izberite možnost »Upravljanje paketov NuGet…«, da namestite ogrodje Fluent NHibernate iz programa NuGet.

Delo s tekočim NHibernatom

Če želite delati s tekočim NHibernateom, morate najprej ustvariti modelni razred. Upoštevajte naslednjo tabelo baze podatkov.

USTVARI TABELO [dbo]. [Izdelek]

(

[Id] INT NULL PRIMARNI KLJUČ,

[Ime] VARCHAR (50) NULL,

[Opis] VARCHAR (50) NULL

)

Tu je ustrezen razred modela.

izdelek javnega razreda

   {

javni navidezni int Id {get; set; }

javni navidezni niz Ime {get; set; }

javni navidezni niz Opis {get; set; }

   }

Zdaj, ko je tabela baze podatkov in ustrezen razred modela pripravljen, je naslednji korak ustvariti potrebno preslikavo. Za preslikavo entitete v Fluent NHibernate bi morali imeti ustrezen razred preslikave. Takšni razredi preslikave bi morali izhajati iz ClassMap, kjer T predstavlja entiteto, ki jo uporabljate. Tekoči NHibernate uporablja močno tipizirane razrede C # za preslikavo lastnosti razredov modelov v ustrezna polja tabel baze podatkov.

Tu je razred preslikave z imenom ProductMap.

javni razred ProductMap: ClassMap

   {

javni ProductMap ()

       {

Id (x => x.Id);

Zemljevid (x => x.Name);

Zemljevid (x => x.Opis);

Tabela ("izdelek");

       }

   }

Naslednji korak je ustvariti pomožni razred za povezavo z našo bazo podatkov. Evo, kako bi bil ta razred videti:

javni statični razred FluentNHibernateHelper

   {

javni statični ISession OpenSession ()

       {

string connectionString = "Sem napišite niz povezave do baze podatkov";

ISessionFactory sessionFactory = Tečno.Configure ()

.Database (MsSqlConfiguration.MsSql2012

.ConnectionString (connectionString) .ShowSql ()

               )

.Mappiranja (m =>

m.FluentMappings

.AddFromAssemblyOf ())

.ExposeConfiguration (cfg => nov SchemaExport (cfg)

.Ustvari (false, false))

.BuildSessionFactory ();

vrnitev sessionFactory.OpenSession ();

       }

   }

Upoštevajte klic sessionFactory.OpenSession () v zadnjem stavku - ta klic dejansko ustvari sejo komunikacije z osnovno bazo podatkov, tj. Odpre povezavo z bazo podatkov, ki se uporablja. Zdaj lahko prikličete statično metodo FluentNHibernateHelper.OpenSession (), da odprete povezavo do baze podatkov. Naslednji delček kode ponazarja, kako lahko izkoristite razred pomočnikov, ustvarjen prej, da dodate zapis izdelka v tabelo baze podatkov Product.

statična praznina Main (string [] args)

       {

z uporabo (var session = FluentNHibernateHelper.OpenSession ())

           {

var product = nov izdelek {Name = "Lenovo Laptop", Opis = "Primer izdelka"};

session.SaveOrUpdate (izdelek);

           }

       }

Naslednji delček kode prikazuje, kako lahko poiščete podatke iz baze podatkov z našim pomožnim razredom Fluent NHibernate.

z uporabo (ISession session = FluentNHibernateHelper.OpenSession ())

           {

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

// Običajna koda

           }

Če želite delati s primeri kod v tem članku, zagotovite, da so bili v vaš razred dodani naslednji imenski prostori.

  • z uporabo FluentNHibernate.Cfg;
  • z uporabo FluentNHibernate.Cfg.Db;
  • z uporabo NHibernata;
  • z uporabo NHibernate.Linq;
  • z uporabo NHibernate.Tool.hbm2ddl;
  • z uporabo System.Linq;

Več o delu s tekočim NHibernatom lahko izveste pri GitHub.

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