NHibernate - เริ่มต้นใช้งาน
ในบทนี้เราจะดูวิธีการเริ่มต้นตัวอย่างง่ายๆโดยใช้ NHibernate เราจะสร้างไฟล์simple console application. ในการสร้างแอปพลิเคชันคอนโซลเราจะใช้ Visual Studio 2015 ซึ่งมีคุณสมบัติทั้งหมดที่คุณต้องการสร้างทดสอบแอปพลิเคชันของคุณโดยใช้แพ็คเกจ NHibernate
ต่อไปนี้เป็นขั้นตอนในการสร้างโครงการโดยใช้เทมเพลตโครงการที่มีอยู่ใน Visual Studio
Step 1 - เปิด Visual studio แล้วคลิก File → New → Project ตัวเลือกเมนู
Step 2 - กล่องโต้ตอบโครงการใหม่จะเปิดขึ้น
Step 3 - จากบานหน้าต่างด้านซ้ายเลือกเทมเพลต→ Visual C # → Windows
Step 4 - ในบานหน้าต่างตรงกลางให้เลือกแอปพลิเคชันคอนโซล
Step 5 - ป้อนชื่อโปรเจ็กต์ 'NHibernateDemoApp' ในฟิลด์ชื่อและคลิกตกลงเพื่อดำเนินการต่อ
Step 6 - เมื่อ Visual Studio สร้างโปรเจ็กต์แล้วคุณจะเห็นไฟล์จำนวนหนึ่งแสดงในหน้าต่าง Solution Explorer
ดังที่คุณทราบว่าเราได้สร้างโครงการแอปพลิเคชันคอนโซลอย่างง่ายตอนนี้เราจำเป็นต้องรวมแพ็คเกจ NHibernate เข้ากับโครงการคอนโซลของเรา
ไปที่เมนู Tools แล้วเลือก NuGet Package Manager → Package Manager Console ก็จะเปิดหน้าต่าง Package Manager Console
ระบุคำสั่งที่แสดงในด้านบน Package Manager Consoleหน้าต่างและกด Enter มันจะดาวน์โหลดการอ้างอิง NHibernate ทั้งหมดและสร้างการอ้างอิงไปยังแอสเซมบลีที่จำเป็นทั้งหมด เมื่อการติดตั้งเสร็จสิ้นคุณจะเห็นข้อความดังที่แสดงในภาพต่อไปนี้
ตอนนี้เราได้เพิ่ม NHibernate แล้วตอนนี้เราสามารถเริ่มใช้งานได้แล้ว ดังนั้นเราจะเริ่มต้นด้วยการทำแผนที่ง่ายๆtable เรียกว่า Studentซึ่งมีคีย์หลักจำนวนเต็มเรียกว่า ID และคอลัมน์ FirstName และ LastName
เราต้องการชั้นเรียนเพื่อเป็นตัวแทนของนักเรียนคนนี้ดังนั้นเรามาสร้างคลาสใหม่ชื่อนักเรียนโดยคลิกขวาที่โปรเจ็กต์ในตัวสำรวจโซลูชันจากนั้นเลือกเพิ่ม→คลาสซึ่งจะเปิดกล่องโต้ตอบเพิ่มรายการใหม่
ป้อน Student.csในช่องชื่อคลิกปุ่มเพิ่ม ในชั้นเรียนนักเรียนนี้เราต้องมีคีย์หลักจำนวนเต็มของเราที่เรียกว่า ID และเราต้องสร้างสตริงนี้FirstName และ LastName ตามที่แสดงในการใช้งานชั้นนักเรียนที่สมบูรณ์ต่อไปนี้
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 การทำให้ฟิลด์ทั้งหมดของคุณเป็นเสมือนจริงนั้นง่ายที่สุด นี่คือแบบจำลอง NHibernate อย่างง่ายของเราที่เราจะใช้และจะแมปสิ่งนี้กับฐานข้อมูลส่วนหลัง
ตอนนี้ไปที่เมธอดหลักในคลาส Program และสร้างอ็อบเจ็กต์คอนฟิกูเรชัน NHibernate ใหม่
สิ่งแรกที่เราต้องเตรียมไว้คือ connection string. นี่คือสตริงการเชื่อมต่อเฉพาะฐานข้อมูลและวิธีที่ง่ายที่สุดในการค้นหาสตริงการเชื่อมต่อคือคลิกขวาที่ฐานข้อมูลในSQL Server Object Explorer และเลือกคุณสมบัติ
มันจะเปิดหน้าต่าง Properties ตอนนี้เลื่อนลงมาแล้วคุณจะเห็นช่อง Connection String ในหน้าต่าง Properties
คัดลอกสตริงการเชื่อมต่อและระบุในรหัสของคุณ ต่อไปนี้คือการนำเมธอดหลักไปใช้ซึ่งเราต้องการการกำหนดค่าสำหรับ 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();
}
}
}
}
หลังจากสตริงการเชื่อมต่อเราจำเป็นต้องจัดหาไดรเวอร์ซึ่งก็คือไฟล์ SQLClientDriver จากนั้นเราต้องระบุภาษาถิ่นด้วยว่า SQL Server เวอร์ชันใดและเรากำลังจะใช้ MS SQL 2008
ตอนนี้ NHibernate รู้วิธีเชื่อมต่อกับฐานข้อมูลแล้ว สิ่งอื่นที่เราต้องทำคือจัดทำรายการโมเดลที่เราจะทำแผนที่
เราสามารถทำได้โดยการเพิ่มแอสเซมบลีดังนั้นโดยระบุไฟล์ Assembly.GetExecutingAssemblyและนี่คือที่ที่โปรแกรมจะค้นหาไฟล์การแมป ไฟล์การแมปบอก NHibernate ว่าจะไปจากคลาส C # ไปยังตารางฐานข้อมูลได้อย่างไร
SessionFactory รวบรวมข้อมูลเมตาทั้งหมดที่จำเป็นสำหรับการเตรียมใช้งาน NHibernate SessionFactory สามารถใช้เพื่อสร้างเซสชันซึ่งคล้ายกับการเชื่อมต่อฐานข้อมูลโดยประมาณ ดังนั้นวิธีที่เหมาะสมคือใช้ในบล็อกการใช้งาน ฉันสามารถพูดvar session เท่ากับ sessionFactory.OpenSession และฉันจะต้องการทำสิ่งนี้ภายในธุรกรรม
เมื่อเซสชันเปิดขึ้นเราสามารถบอกเซสชันให้เริ่มต้นธุรกรรมใหม่จากนั้นเราสามารถใช้ตรรกะบางอย่างได้ที่นี่ ดังนั้นดำเนินการตรรกะฐานข้อมูลบางอย่างและในที่สุดก็ยอมรับธุรกรรมนั้น