NHibernate - Başlarken
Bu bölümde, NHibernate kullanarak basit bir örneğe nasıl başlanacağına bakacağız. Biz inşa edeceğizsimple console application. Bir konsol uygulaması oluşturmak için, NHibernate paketini kullanarak uygulamanızı test etmek için oluşturmanız gereken tüm özellikleri içeren Visual Studio 2015'i kullanacağız.
Aşağıda, Visual Studio'da bulunan proje şablonlarını kullanarak bir proje oluşturma adımları verilmiştir.
Step 1 - Görsel stüdyoyu açın ve Dosya → Yeni → Proje menü seçeneğine tıklayın.
Step 2 - Yeni bir Proje iletişim kutusu açılır.
Step 3 - Sol bölmeden Şablonlar → Görsel C # → Pencereler'i seçin.
Step 4 - Orta bölmede Konsol Uygulaması'nı seçin.
Step 5 - Ad alanına proje adını 'NHibernateDemoApp' girin ve devam etmek için Tamam'ı tıklayın.
Step 6 - Proje Visual Studio tarafından oluşturulduktan sonra, Çözüm Gezgini penceresinde birkaç dosyanın görüntülendiğini göreceksiniz.
Basit bir konsol uygulama projesi oluşturduğumuzu bildiğiniz gibi, şimdi NHibernate paketini konsol projemize dahil etmemiz gerekiyor.
Araçlar menüsüne gidin ve NuGet Paket Yöneticisi → Paket Yöneticisi Konsolu'nu seçin, Paket Yöneticisi Konsolu penceresini açacaktır.
Yukarıda gösterilen komutu belirtin Package Manager Consolepenceresini açın ve enter tuşuna basın, tüm NHibernate bağımlılıklarını indirecek ve gerekli tüm derlemelere referanslar oluşturacaktır. Kurulum tamamlandığında, aşağıdaki resimde gösterildiği gibi mesajı göreceksiniz.
Artık NHibernate'i eklediğimize göre, uygulamaya başlayabiliriz. Öyleyse, çok basit bir haritayı çizerek başlayacağıztable aranan Student, ID adında bir tamsayı birincil anahtara ve FirstName ve LastName sütununa sahip olan.
Bu öğrenciyi temsil edecek bir sınıfa ihtiyacımız var, öyleyse çözüm gezgininde projeye sağ tıklayarak Öğrenci adında yeni bir sınıf oluşturalım ve ardından Yeni Öğe Ekle iletişim kutusunu açacak olan Ekle → Sınıf'ı seçelim.
Giriş Student.csad alanında, Ekle düğmesini tıklayın. Bu Öğrenci sınıfında, ID adında tamsayı birincil anahtarımıza sahip olmalıyız ve bu dizeyi oluşturmalıyız,FirstName ve LastName Öğrenci sınıfının aşağıdaki tam uygulamasında gösterildiği gibi alanlar.
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; }
}
}
NHibernate uygulamasındaki modellerle uğraşırken, tüm alanlarınızı sanal yapmak en kolayıdır. Bu, kullanacağımız ve bunu arka uç veri tabanına eşleyeceğimiz basit NHibernate modelimiz.
Şimdi Program sınıfındaki Main metoduna gidelim ve yeni bir NHibernate konfigürasyon nesnesi oluşturalım.
Sağlamamız gereken ilk şey, connection string. Bu, veritabanına özgü bir bağlantı dizesidir ve bağlantı dizesini bulmanın en kolay yolu, veri tabanına sağ tıklamaktır.SQL Server Object Explorer ve Özellikler'i seçin.
Özellikler Penceresini açacak, şimdi aşağı kaydırın ve Özellikler penceresinde Bağlantı Dizesi alanını göreceksiniz.
Bağlantı dizesini kopyalayın ve kodunuzda belirtin. Aşağıda, NHibernate için yapılandırmaya ihtiyaç duyduğumuz Ana yöntemin uygulaması yer almaktadır.
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();
}
}
}
}
Bağlantı dizesinden sonra, bir sürücü sağlamamız gerekir. SQLClientDriver ve sonra ona bir diyalekt, SQL Server'ın hangi sürümünü sağlamamız gerekiyor ve MS SQL 2008 kullanacağız.
NHibernate artık veritabanına nasıl bağlanılacağını biliyor. Yapmamız gereken diğer şey, ona haritalayacağımız modellerin bir listesini sağlamaktır.
Bunu bir montaj ekleyerek yapabiliriz, yani Assembly.GetExecutingAssemblyve burası programın eşleme dosyalarını bulacağı yerdir. Eşleme dosyaları NHibernate'e C # sınıflarından veritabanı tablolarına nasıl geçileceğini söyler.
SessionFactory, NHibernate'i başlatmak için gerekli tüm meta verileri derler. SessionFactory, veritabanı bağlantılarına kabaca benzeyen oturumlar oluşturmak için kullanılabilir. Bu yüzden uygun yol, kullanım bloğunda kullanmaktır. söyleyebilirimvar session eşittir sessionFactory.OpenSession ve bunu işleminin içinde yapmak isteyeceğim.
Oturum açıldıktan sonra, oturuma yeni bir işlem başlatmasını söyleyebilir ve daha sonra burada biraz mantık gerçekleştirebiliriz. Bu nedenle, bazı veritabanı mantığı uygulayın ve sonunda bu işlemi gerçekleştirin.