Ohjelmointi

Kuinka työskennellä sujuvan NHibernaten kanssa C #: ssä

ORM: t (objektin relaatiokartoittajat) yksinkertaistavat sovelluksen tietojen käyttöä antamalla sinun kirjoittaa koodia CRUD (Luo, Lue, Päivitä ja Poista) -toimintojen suorittamiseksi. ORM-kehyksiä on käytetty pitkään poistamaan impedanssin epäsuhta, joka on kohteen ja tietomallien välillä sovelluksessa. Pohjimmiltaan ORM: ien avulla voit kirjoittaa koodia CRUD-operaatioiden suorittamiseen, eikä tarvetta olla vuorovaikutuksessa suoraan taustalla olevan tietokantapalvelun kanssa. ORM: ien käyttö auttaa sinua eristämään sovelluksesi objektimallin datamallista.

Miksi sujuva NHibernate?

NHibernate tallentaa kartoitustiedot XML-muodossa .hbm-tiedostoiksi - sinulla tulisi olla yksi .hbm-tiedosto kullekin entiteettiluokalle. Tätä .hbm-tiedostoa käytetään entiteettien kartoittamiseen vastaaviin tietokantataulukoihin. Fluent NHibernate -ohjelmaa käytettäessä sinun ei enää tarvitse käyttää hankalia .hbm.xml-tiedostoja, joita olet joutunut käyttämään työskennellessäsi NHibernaten kanssa.

Sujuva NHibernate on staattisesti koottu, koottu turvallinen vastine suositulle ORM-työkalulle NHibernate, jota voidaan käyttää kartoituksen luomiseen POCO-luokkien välillä, ja NHibernate-moottori ei vaadi hankalia XML-tiedostoja. Se tarjoaa sujuvan sovellusliittymän, jonka avulla voit käyttää LINQ-tiedostoa tietojen kyselyyn NHibernate-moottorin päällä. Seuraavissa osioissa keskustellaan siitä, kuinka voimme asentaa Fluent NHibernate -työkalun, luoda malleja, kartoittaa nämä mallit tai kokonaisuusluokat ja käyttää Fluent NHibernate -ohjelmaa CRUD-toimintojen suorittamiseen.

Päästä alkuun

Aloita Fluent NHibernate -palvelun käyttö seuraavasti:

  1. Avaa Visual Studio 2015 IDE
  2. Napsauta Tiedosto -> Uusi -> Projekti
  3. Luo uusi projekti - yksinkertaisuuden vuoksi luo Windows-sovellus
  4. Määritä projektille nimi
  5. Tallenna projekti napsauttamalla OK

Nyt kun projekti on luotu Visual Studiossa, sinun kannattaa asentaa Fluent NHibernate käyttääksesi sitä sovelluksessasi. Jos NuGet on asennettu, helpoin tapa on asentaa Fluent NHibernate NuGet Package Managerin kautta. Voit tehdä tämän valitsemalla projektin Solution Explorer -ikkunassa, napsauttamalla hiiren kakkospainikkeella ja valitsemalla "Hallitse NuGet-paketteja ..." -vaihtoehto asentaaksesi Fluent NHibernate -kehyksen NuGetistä.

Työskentely Fluent NHibernaten kanssa

Jotta voisit työskennellä Fluent NHibernaten kanssa, sinun on ensin luotava malliluokka. Harkitse seuraavaa tietokantataulukkoa.

LUO TAULUKKO [dbo]. [Tuote]

(

[Id] EI OLE NULL PRIMARY AVAIN,

[Nimi] VARCHAR (50) NULL,

[Kuvaus] VARCHAR (50) NULL

)

Tässä on vastaava malliluokka.

julkisen luokan tuote

   {

julkinen virtuaalinen int Id {get; aseta; }

julkinen virtuaalinen merkkijono Nimi {get; aseta; }

julkinen virtuaalinen merkkijono Kuvaus {get; aseta; }

   }

Nyt kun tietokantataulukko ja vastaava malliluokka ovat valmiina, seuraava askel on luoda tarvittava kartoitus. Yksikön kartoittamiseksi sujuvassa horrostilassa sinulla on oltava vastaava kartoitusluokka. Tällaisten kartoitusluokkien tulisi olla peräisin ClassMapista, jossa T edustaa käyttämääsi kokonaisuutta. Sujuva NHibernate käyttää voimakkaasti kirjoitettuja C # -luokkia kartoittamaan malliluokkien ominaisuudet tietokantataulukoiden vastaaviin kenttiin.

Tässä on kartoitusluokka nimeltä ProductMap.

julkisen luokan ProductMap: ClassMap

   {

julkinen tuotekartta ()

       {

Id (x => x.Id);

Kartta (x => x.Nimi);

Kartta (x => x kuvaus);

Taulukko ("Tuote");

       }

   }

Seuraava vaihe on luoda auttajaluokka yhteyden muodostamiseksi tietokantaan. Tältä näyttää tämä luokka:

julkinen staattinen luokka FluentNHibernateHelper

   {

julkinen staattinen ISession OpenSession ()

       {

string connectionString = "Kirjoita tietokannan yhteysmerkkijono tähän";

ISessionFactory sessionFactory = Sujuvasti.Määritä ()

.Tietokanta (MsSqlConfiguration.MsSql2012

.ConnectionString (connectionString) .ShowSql ()

               )

Kartoitukset (m =>

m.FluentMappings

.AddFromAssemblyOf ())

.ExposeConfiguration (cfg => uusi SchemaExport (cfg)

Luo (väärä, väärä))

.BuildSessionFactory ();

return sessionFactory.OpenSession ();

       }

   }

Huomaa kutsun sessionFactory.OpenSession () viimeiseen lausekkeeseen - tämä kutsu luo tosiasiallisesti yhteydenpitotapahtuman taustalla olevan tietokannan kanssa, ts. Se avaa yhteyden käytössä olevaan tietokantaan. Voit nyt käyttää staattista menetelmää FluentNHibernateHelper.OpenSession () yhteyden avaamiseksi tietokantaan. Seuraava koodinpätkä kuvaa, kuinka voit hyödyntää aiemmin luotua auttajaluokkaa tuotetietueen lisäämiseen tuotetietokantataulukkoon.

staattinen void Main (merkkijono [] args)

       {

käyttäen (var session = FluentNHibernateHelper.OpenSession ())

           {

var product = uusi tuote {Name = "Lenovo Laptop", Description = "Sample product"};

session.SaveOrUpdate (tuote);

           }

       }

Seuraava koodinpätkä osoittaa, kuinka voit kysellä tietoja tietokannasta Fluent NHibernate -apuiluokkamme avulla.

käyttäen (ISession session = FluentNHibernateHelper.OpenSession ())

           {

var tuotteet = istunto.Kysely () .Lista ();

// Tavallinen koodi

           }

Jotta voit työskennellä tässä artikkelissa annettujen koodiesimerkkien kanssa, varmista, että seuraavat nimitilat on lisätty luokkaasi.

  • käyttämällä FluentNHibernate.Cfg;
  • käyttämällä FluentNHibernate.Cfg.Db;
  • käyttämällä NHibernate;
  • käyttämällä NHibernate.Linq;
  • käyttämällä NHibernate.Tool.hbm2ddl;
  • käyttäen System.Linq;

Voit oppia lisää Fluent NHibernaten kanssa työskentelystä GitHubilta.