NHibernate - Guida introduttiva
In questo capitolo vedremo come iniziare un semplice esempio usando NHibernate. Costruiremo un filesimple console application. Per creare un'applicazione console, utilizzeremo Visual Studio 2015, che contiene tutte le funzionalità necessarie per creare, testare l'applicazione utilizzando il pacchetto NHibernate.
Di seguito sono riportati i passaggi per creare un progetto utilizzando i modelli di progetto disponibili in Visual Studio.
Step 1 - Apri Visual Studio e fai clic su File → Nuovo → opzione di menu Progetto.
Step 2 - Si apre una nuova finestra di dialogo Progetto.
Step 3 - Dal riquadro di sinistra, seleziona Modelli → Visual C # → Windows.
Step 4 - Nel riquadro centrale, seleziona Applicazione console.
Step 5 - Immettere il nome del progetto, "NHibernateDemoApp", nel campo Nome e fare clic su OK per continuare.
Step 6 - Una volta che il progetto è stato creato da Visual Studio, vedrai una serie di file visualizzati nella finestra Esplora soluzioni.
Come saprai, abbiamo creato un semplice progetto di applicazione console, ora dobbiamo includere il pacchetto NHibernate nel nostro progetto console.
Vai al menu Strumenti e seleziona Gestione pacchetti NuGet → Console di Gestione pacchetti, si aprirà la finestra della Console di Gestione pacchetti.
Specificare il comando mostrato sopra Package Manager Consolee premere Invio, scaricherà tutte le dipendenze di NHibernate e creerà riferimenti a tutti gli assembly richiesti. Una volta terminata l'installazione, vedrai il messaggio come mostrato nell'immagine seguente.
Ora che abbiamo aggiunto NHibernate, possiamo ora iniziare l'implementazione. Quindi, inizieremo mappando un filetable chiamato Student, che ha semplicemente una chiave primaria intera chiamata ID e una colonna FirstName e LastName.
Abbiamo bisogno di una classe per rappresentare questo studente, quindi creiamo una nuova classe chiamata Studente facendo clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e quindi selezionare Aggiungi → Classe che aprirà la finestra di dialogo Aggiungi nuovo elemento.
accedere Student.csnel campo del nome, fare clic sul pulsante Aggiungi. In questa classe Student, dobbiamo avere la nostra chiave primaria intera chiamata ID e dobbiamo creare questa stringa,FirstName e LastName come mostrato nella seguente implementazione completa della classe Student.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NHibernateDemoApp {
class Student {
public virtual int ID { get; set; }
public virtual string LastName { get; set; }
public virtual string FirstMidName { get; set; }
}
}
Quando si ha a che fare con i modelli nell'applicazione NHibernate, è più semplice rendere virtuali tutti i campi. Quindi questo è il nostro semplice modello NHibernate che useremo e lo mapperemo al database back-end.
Ora andiamo al metodo Main nella classe Program e creiamo un nuovo oggetto di configurazione NHibernate.
La prima cosa che dobbiamo fornire è il file connection string. Questa è una stringa di connessione specifica del database e il modo più semplice per trovare la stringa di connessione è fare clic con il pulsante destro del mouse sul database inSQL Server Object Explorer e seleziona Proprietà.
Si aprirà la finestra Proprietà, ora scorri verso il basso e vedrai il campo Stringa di connessione nella finestra Proprietà.
Copia la stringa di connessione e specifica nel codice. Di seguito è riportata l'implementazione del metodo Main in cui è necessaria la configurazione per NHibernate.
using NHibernate.Cfg;
using NHibernate.Dialect;
using NHibernate.Driver;
using System;
using System.Linq;
using System.Reflection;
namespace NHibernateDemoApp {
class Program {
static void Main(string[] args) {
var cfg = new Configuration();
String Data Source = asia13797\\sqlexpress;
String Initial Catalog = NHibernateDemoDB;
String Integrated Security = True;
String Connect Timeout = 15;
String Encrypt = False;
String TrustServerCertificate = False;
String ApplicationIntent = ReadWrite;
String MultiSubnetFailover = False;
cfg.DataBaseIntegration(x = > { x.ConnectionString = "Data Source +
Initial Catalog + Integrated Security + Connect Timeout + Encrypt +
TrustServerCertificate + ApplicationIntent + MultiSubnetFailover";
x.Driver<SqlClientDriver>();
x.Dialect<MsSql2008Dialect>();
});
cfg.AddAssembly(Assembly.GetExecutingAssembly());
var sefact = cfg.BuildSessionFactory();
using (var session = sefact.OpenSession()) {
using (var tx = session.BeginTransaction()) {
//perform database logic
tx.Commit();
}
Console.ReadLine();
}
}
}
}
Dopo la stringa di connessione, dobbiamo fornire un driver, che è il SQLClientDriver e poi dobbiamo anche fornirgli un dialetto, quale versione di SQL Server, e useremo MS SQL 2008.
NHibernate ora sa come connettersi al database. L'altra cosa che dobbiamo fare è fornire un elenco di modelli che mapperemo.
Possiamo farlo aggiungendo un assembly, quindi specificando il file Assembly.GetExecutingAssemblyed è qui che il programma troverà i file di mappatura. I file di mapping indicano a NHibernate come passare dalle classi C # alle tabelle del database.
SessionFactory compila tutti i metadati necessari per inizializzare NHibernate. SessionFactory può essere utilizzato per creare sessioni, che sono più o meno analoghe alle connessioni al database. Quindi il modo appropriato è usarlo nel blocco using. posso direvar session equivale sessionFactory.OpenSession e lo voglio fare all'interno della sua transazione.
Una volta aperta la sessione, possiamo dire alla sessione di iniziare una nuova transazione e possiamo quindi eseguire un po 'di logica qui. Quindi esegui un po 'di logica del database e infine esegui il commit della transazione.