Programavimas

Kaip dirbti su laisvu NHibernate C #

ORM (objektų reliaciniai žemėlapiai) supaprastina prieigą prie duomenų jūsų programoje, leisdami jums rašyti kodą, kad atliktumėte CRUD (kūrimo, skaitymo, atnaujinimo ir ištrynimo) operacijas. ORM sistemos buvo naudojamos ilgą laiką, siekiant pašalinti impedansų neatitikimą, kuris egzistuoja tarp objekto ir duomenų modelių programoje. Iš esmės ORM suteikia galimybę rašyti kodą CRUD operacijoms atlikti, be būtinybės tiesiogiai bendrauti su pagrindiniu duomenų bazės teikėju. Taigi ORM naudojimas padeda atskirti programos objektų modelį nuo duomenų modelio.

Kodėl sklandus žiemos miegas?

„NHibernate“ susiejimo informaciją XML formatu saugo .hbm failuose - kiekvienai objektų klasei turėtumėte turėti po vieną .hbm failą. Šis .hbm failas naudojamas objektams susieti su atitinkamomis duomenų bazės lentelėmis. Naudojant „Fluent NHibernate“ nebereikia naudoti sudėtingų .hbm.xml failų, kuriuos teko naudoti dirbant su „NHibernate“.

„Fluent NHibernate“ yra statiškai sukompiliuotas, saugus populiaraus ORM įrankio „NHibernate“ atitikmuo, kuris gali būti naudojamas susikurti tarp POCO klasių, o „NHibernate“ variklis nereikalauja sudėtingų XML failų. Tai suteikia „Fluent“ API, taip pat leidžia naudoti LINQ norint pateikti užklausą duomenims viršuje „NHibernate“ variklio. Tolesniuose skyriuose aptarsime, kaip galime įdiegti „Fluent NHibernate“, sukurti modelius, susieti šiuos modelius ar objektų klases ir naudoti „Fluent NHibernate“ atliekant CRUD operacijas.

Darbo pradžia

Norėdami pradėti naudoti „Fluent NHibernate“, atlikite šiuos veiksmus:

  1. Atidarykite „Visual Studio 2015 IDE“
  2. Spustelėkite Failas -> Naujas -> Projektas
  3. Sukurkite naują projektą - kad būtų paprasčiau, sukurkite „Windows“ programą
  4. Nurodykite projekto pavadinimą
  5. Spustelėkite Gerai, kad išsaugotumėte projektą

Dabar, kai „Visual Studio“ sukurtas projektas, galbūt norėsite įdiegti „Fluent NHibernate“, kad galėtumėte jį naudoti savo programoje. Jei turite įdiegtą „NuGet“, paprasčiausias būdas yra įdiegti „Fluent NHibernate“ per „NuGet Package Manager“. Norėdami tai padaryti, pasirinkite projektą „Solution Explorer“ lange, dešiniuoju pelės mygtuku spustelėkite ir pasirinkite parinktį „Manage NuGet Packages…“, kad įdiegtumėte „NuGet“ „Fluent NHibernate“ sistemą.

Darbas su „Fluent NHibernate“

Norėdami dirbti su „Fluent NHibernate“, pirmiausia turite sukurti modelių klasę. Apsvarstykite šią duomenų bazės lentelę.

KURTI LENTEL [[dbo]. [Produktas]

(

[Id] NĖRA VISO PAGRINDINIO RAKTO,

[Vardas] VARCHAR (50) NULL,

[Aprašymas] VARCHAR (50) NULL

)

Čia yra atitinkama modelio klasė.

visuomenės klasės produktas

   {

public virtual int Id {get; rinkinys; }

viešoji virtuali eilutė Pavadinimas {get; rinkinys; }

vieša virtuali eilutė Aprašymas {get; rinkinys; }

   }

Dabar, kai duomenų bazės lentelė ir atitinkama modelio klasė yra parengta, kitas žingsnis yra sukurti reikiamą susiejimą. Norėdami susieti objektą „Fluent NHibernate“, turite turėti atitinkamą susiejimo klasę. Tokios susiejimo klasės turėtų atsirasti iš „ClassMap“, kur T reiškia jūsų naudojamą objektą. Sklandus „NHibernate“ naudoja labai tipiškas C # klases, kad susietų modelių klasių ypatybes su atitinkamais duomenų bazės lentelių laukais.

Štai žemėlapių klasė pavadinimu „ProductMap“.

viešoji klasė „ProductMap“: „ClassMap“

   {

viešas „ProductMap“ ()

       {

Id (x => x.Id);

Žemėlapis (x => x.Pavadinimas);

Žemėlapis (x => x.aprašas);

Lentelė („Produktas“);

       }

   }

Kitas žingsnis - sukurti pagalbininkų klasę, kad galėtumėte prisijungti prie mūsų duomenų bazės. Štai kaip atrodytų ši klasė:

viešoji statinė klasė „FluentNHibernateHelper“

   {

viešoji statinė „ISession OpenSession“ ()

       {

string connectionString = "Čia parašykite savo duomenų bazės ryšio eilutę";

ISessionFactory sessionFactory = Puikiai. Konfigūruoti ()

.Duomenų bazė (MsSqlConfiguration.MsSql2012

.ConnectionString (connectionString) .ShowSql ()

               )

.Vaizdai (m =>

m. „FluentMappings“

.AddFromAssemblyOf ())

.ExposeConfiguration (cfg => nauja „SchemaExport“ (cfg)

. Sukurti (klaidingą, melagingą))

.BuildSessionFactory ();

return sessionFactory.OpenSession ();

       }

   }

Paskutiniame sakinyje atkreipkite dėmesį į iškvietimą sessionFactory.OpenSession () - šis skambutis iš tikrųjų sukuria ryšio sesiją su pagrindine duomenų baze, t. Y. Atveria ryšį su naudojama duomenų baze. Dabar galite pasinaudoti statiniu metodu FluentNHibernateHelper.OpenSession (), kad atidarytumėte ryšį su duomenų baze. Šis kodo fragmentas parodo, kaip galite pasinaudoti anksčiau sukurta pagalbininkų klase, kad pridėtumėte produkto įrašą prie produktų duomenų lentelės lentelės.

static void Main (string [] args)

       {

naudojant (var session = FluentNHibernateHelper.OpenSession ())

           {

var product = naujas produktas {Name = "Lenovo Laptop", Description = "Sample product"};

session.SaveOrUpdate (produktas);

           }

       }

Šis kodo fragmentas rodo, kaip galite pateikti duomenų užklausą iš duomenų bazės naudodami mūsų „Fluent NHibernate“ pagalbininkų klasę.

naudojant (ISession session = FluentNHibernateHelper.OpenSession ())

           {

var produktai = sesija. Užklausa (). „ToList“ ();

// Įprastas kodas

           }

Norėdami dirbti su šiame straipsnyje pateiktais kodų pavyzdžiais, turėtumėte įsitikinti, kad šie vardai buvo pridėti prie jūsų klasės.

  • naudojant „FluentNHibernate.Cfg“;
  • naudojant „FluentNHibernate.Cfg.Db“;
  • naudojant NHibernate;
  • naudojant NHibernate.Linq;
  • naudojant NHibernate.Tool.hbm2ddl;
  • naudojant System.Linq;

Daugiau apie darbą su „Fluent NHibernate“ galite sužinoti iš „GitHub“.

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