ORM-er (objektrelasjonskartleggere) forenkler datatilgang i applikasjonen din ved å la deg skrive kode for å utføre CRUD (Create, Read, Update, and Delete) -operasjoner. ORM-rammeverk har vært i bruk i lang tid for å eliminere impedansforskjellen mellom objektet og datamodellene i et program. I hovedsak lar ORMer deg skrive kode for å utføre CRUD-operasjoner uten behov for å samhandle med den underliggende databaseleverandøren direkte. Dermed hjelper bruk av ORMer deg til å isolere objektmodellen til applikasjonen din fra datamodellen.
Hvorfor flytende NHibernate?
NHibernate lagrer kartinformasjonen i XML-format i. Hbm-filer - du bør ha en. Hbm-fil for hver enhetsklasse. Denne .hbm-filen brukes til å kartlegge enhetene til de tilsvarende databasetabellene. Når du bruker Fluent NHibernate, trenger du ikke lenger å bruke de tungvinte .hbm.xml-filene du har måttet bruke når du jobber med NHibernate.
Flytende NHibernate er det statisk kompilerte, kompilerte sikre motstykket til det populære ORM-verktøyet NHibernate som kan brukes til å lage kartlegging mellom POCO-klassene og NHibernate-motoren sans behovet for tungvint XML-filer. Det gir et flytende API som også lar deg bruke LINQ til å spørre om data på toppen av NHibernate-motoren. I avsnittene som følger vil vi diskutere hvordan vi kan installere Fluent NHibernate, lage modeller, kartlegge disse modellene eller enhetsklasser og bruke Fluent NHibernate til å utføre CRUD-operasjoner.
Starter
For å komme i gang med å bruke flytende NHibernate, følg disse trinnene:
- Åpne Visual Studio 2015 IDE
- Klikk på Fil -> Ny -> Prosjekt
- Lag et nytt prosjekt - for enkelhets skyld, opprett et Windows-program
- Spesifiser et navn på prosjektet
- Klikk OK for å lagre prosjektet
Nå som et prosjekt er opprettet i Visual Studio, vil du kanskje installere Fluent NHibernate for å bruke det i applikasjonen din. Hvis du har NuGet installert, er det enkleste alternativet å installere Fluent NHibernate via NuGet Package Manager. For å gjøre dette, velg prosjektet i Solution Explorer Window, høyreklikk og velg "Manage NuGet Packages ..." for å installere Fluent NHibernate framework fra NuGet.
Jobber med flytende NHibernate
For å jobbe med Fluent NHibernate, må du først lage en modellklasse. Vurder følgende databasetabell.
OPPRETT TABELL [dbo]. [Produkt]
(
[Id] INT IKKE NULL PRIMÆR NØKKEL,
[Navn] VARCHAR (50) NULL,
[Beskrivelse] VARCHAR (50) NULL
)
Her er den tilsvarende modellklassen.
offentlig klasse Produkt
{
offentlig virtuell int Id {get; sett; }
offentlig virtuell streng Navn {get; sett; }
offentlig virtuell streng Beskrivelse {get; sett; }
}
Nå som databasetabellen og den tilsvarende modellklassen er klar, er neste trinn å lage den nødvendige kartleggingen. For å kartlegge en enhet i flytende NHibernate, bør du ha en tilsvarende kartleggingsklasse. Slike kartklasser bør komme fra ClassMap der T representerer enheten du bruker. Flytende NHibernate bruker sterkt typte C # -klasser for å kartlegge egenskapene til modellklassene til de tilsvarende feltene i databasetabellene.
Her er kartklassen som heter ProductMap.
offentlig klasse ProductMap: ClassMap
{
offentlig ProductMap ()
{
Id (x => x.Id);
Kart (x => x.Name);
Kart (x => x.Beskrivelse);
Tabell ("Produkt");
}
}
Neste trinn er å lage en hjelperklasse for å koble til databasen vår. Slik ser denne klassen ut:
offentlig statisk klasse FluentNHibernateHelper
{
offentlig statisk ISession OpenSession ()
{
string connectionString = "Skriv databaseforbindelsesstrengen her";
ISessionFactory sessionFactory = Flytende.Konfigurer ()
.Database (MsSqlConfiguration.MsSql2012
.ConnectionString (connectionString) .ShowSql ()
)
.Kartlegginger (m =>
m.FluentMappings
.AddFromAssemblyOf ())
.ExposeConfiguration (cfg => new SchemaExport (cfg)
.Create (false, false))
.BuildSessionFactory ();
retur sessionFactory.OpenSession ();
}
}
Legg merke til samtalen til sessionFactory.OpenSession () i den siste uttalelsen - denne samtalen oppretter faktisk en økt med kommunikasjon med den underliggende databasen, dvs. den åpner en forbindelse til databasen som er i bruk. Du kan nå påberope den statiske metoden FluentNHibernateHelper.OpenSession () for å åpne en forbindelse til databasen. Følgende kodebit illustrerer hvordan du kan dra nytte av hjelperklassen som ble opprettet tidligere for å legge til en produktregistrering i produktdatabasetabellen.
statisk tomrom Main (streng [] args)
{
bruker (var session = FluentNHibernateHelper.OpenSession ())
{
var product = new Product {Name = "Lenovo Laptop", Description = "Sample product"};
session.SaveOrUpdate (produkt);
}
}
Følgende kodebit viser hvordan du kan spørre om data fra databasen ved hjelp av vår flytende NHibernate hjelperklasse.
bruker (ISession session = FluentNHibernateHelper.OpenSession ())
{
var products = session.Query (). ToList ();
// Vanlig kode
}
For å jobbe med kodeeksemplene gitt i denne artikkelen, bør du forsikre deg om at følgende navneområder er lagt til i klassen din.
- ved hjelp av FluentNHibernate.Cfg;
- ved hjelp av FluentNHibernate.Cfg.Db;
- bruk av NHibernate;
- ved hjelp av NHibernate.Linq;
- bruker NHibernate.Tool.hbm2ddl;
- ved hjelp av System.Linq;
Du kan lære mer om å jobbe med Fluent NHibernate fra GitHub.