NHibernate - Memulai
Dalam bab ini, kita akan melihat bagaimana memulai contoh sederhana menggunakan NHibernate. Kami akan membangun asimple console application. Untuk membuat aplikasi konsol, kami akan menggunakan Visual Studio 2015, yang berisi semua fitur yang Anda butuhkan untuk membuat, menguji aplikasi Anda menggunakan paket NHibernate.
Berikut adalah langkah-langkah untuk membuat proyek menggunakan templat proyek yang tersedia di Visual Studio.
Step 1 - Buka Visual studio dan klik File → New → Project menu option.
Step 2 - Dialog Proyek baru terbuka.
Step 3 - Dari panel kiri, pilih Template → Visual C # → Windows.
Step 4 - Di panel tengah, pilih Aplikasi Konsol.
Step 5 - Masukkan nama proyek, 'NHibernateDemoApp', di bidang Nama dan klik Oke untuk melanjutkan.
Step 6 - Setelah proyek dibuat oleh Visual Studio, Anda akan melihat sejumlah file yang ditampilkan di jendela Solution Explorer.
Seperti yang Anda ketahui bahwa kami telah membuat proyek aplikasi konsol sederhana, sekarang kami perlu menyertakan paket NHibernate ke proyek konsol kami.
Buka menu Tools dan pilih NuGet Package Manager → Package Manager Console, itu akan membuka jendela Package Manager Console.
Tentukan perintah yang ditunjukkan di atas Package Manager Consolejendela dan tekan enter, itu akan mengunduh semua dependensi NHibernate dan membuat referensi ke semua majelis yang diperlukan. Setelah instalasi selesai, Anda akan melihat pesan seperti yang ditunjukkan pada gambar berikut.
Sekarang setelah kami menambahkan NHibernate, sekarang kami dapat memulai implementasi. Jadi, kami akan memulai dengan memetakan yang sangat sederhanatable dipanggil Student, yang hanya memiliki kunci primer integer yang disebut ID dan kolom NamaDepan dan NamaBelakang.
Kita membutuhkan kelas untuk mewakili siswa ini, jadi mari buat kelas baru yang disebut Siswa dengan mengklik kanan pada proyek di explorer solusi dan kemudian pilih Add → Class yang akan membuka kotak dialog Add New Item.
Memasukkan Student.csdi bidang nama, klik tombol Tambah. Di kelas Student ini, kita perlu memiliki kunci primer integer yang disebut ID, dan kita perlu membuat string ini,FirstName dan LastName bidang seperti yang ditunjukkan dalam implementasi lengkap kelas Mahasiswa berikut.
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; }
}
}
Saat menangani model dalam aplikasi NHibernate, paling mudah membuat semua bidang Anda menjadi virtual. Jadi ini adalah model NHibernate sederhana yang akan kita gunakan dan akan memetakannya ke database back end.
Sekarang mari kita pergi ke metode Utama di kelas Program dan membuat objek konfigurasi NHibernate baru.
Hal pertama yang perlu kami sediakan adalah connection string. Ini adalah string koneksi khusus database dan cara termudah untuk menemukan string koneksi adalah dengan mengklik kanan pada database diSQL Server Object Explorer dan pilih Properties.
Ini akan membuka Jendela Properties, sekarang gulir ke bawah dan Anda akan melihat bidang Connection String di jendela Properties.
Salin string Koneksi dan tentukan dalam kode Anda. Berikut ini adalah implementasi dari metode Main yang memerlukan konfigurasi untuk 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();
}
}
}
}
Setelah koneksi string, kita perlu menyediakan driver, yaitu SQLClientDriver dan kemudian kita juga perlu memberinya dialek, versi SQL Server yang mana, dan kita akan menggunakan MS SQL 2008.
NHibernate sekarang tahu bagaimana menghubungkan ke database. Hal lain yang perlu kita lakukan adalah memberikan daftar model yang akan kita petakan.
Kita dapat melakukan ini dengan menambahkan sebuah assembly, jadi dengan menentukan file Assembly.GetExecutingAssemblydan di sinilah program akan menemukan file pemetaan. File pemetaan memberi tahu NHibernate cara beralih dari kelas C # ke tabel database.
SessionFactory mengumpulkan semua metadata yang diperlukan untuk menginisialisasi NHibernate. SessionFactory dapat digunakan untuk membangun sesi, yang secara kasar mirip dengan koneksi database. Jadi cara yang tepat adalah dengan menggunakannya di blok using. Bisa saya katakanvar session sama sessionFactory.OpenSession dan saya ingin melakukan ini di dalam transaksinya.
Setelah sesi dibuka, kita dapat memberi tahu sesi untuk memulai transaksi baru dan kemudian kita dapat melakukan beberapa logika di sini. Jadi lakukan beberapa logika database dan akhirnya lakukan transaksi itu.