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 และฉันจะต้องการทำสิ่งนี้ภายในธุรกรรม

เมื่อเซสชันเปิดขึ้นเราสามารถบอกเซสชันให้เริ่มต้นธุรกรรมใหม่จากนั้นเราสามารถใช้ตรรกะบางอย่างได้ที่นี่ ดังนั้นดำเนินการตรรกะฐานข้อมูลบางอย่างและในที่สุดก็ยอมรับธุรกรรมนั้น