- NHibernate 教程
- NHibernate - 首頁
- NHibernate - 概述
- NHibernate - 架構
- NHibernate - ORM
- NHibernate - 環境設定
- NHibernate - 快速入門
- NHibernate - 基礎ORM
- NHibernate - 基礎CRUD操作
- NHibernate - 分析器
- 為對映檔案新增IntelliSense
- NHibernate - 資料型別對映
- NHibernate - 配置
- NHibernate - 覆蓋配置
- NHibernate - 批次大小
- NHibernate - 快取
- NHibernate - 元件對映
- NHibernate - 關係
- NHibernate - 集合對映
- NHibernate - 級聯操作
- NHibernate - 延遲載入
- NHibernate - 反向關係
- NHibernate - Load/Get
- NHibernate - LINQ
- NHibernate - 查詢語言
- NHibernate - Criteria 查詢
- NHibernate - QueryOver 查詢
- NHibernate - 原生SQL
- NHibernate - Fluent NHibernate
- NHibernate 有用資源
- NHibernate - 快速指南
- NHibernate - 有用資源
- NHibernate - 討論
NHibernate - 快速入門
本章我們將學習如何使用NHibernate建立一個簡單的示例。我們將構建一個簡單的控制檯應用程式。要建立控制檯應用程式,我們將使用Visual Studio 2015,它包含建立和測試應用程式所需的所有功能,並使用NHibernate包。
以下是使用Visual Studio中提供的專案模板建立專案步驟。
步驟1 - 開啟Visual Studio,單擊“檔案”→“新建”→“專案”選單選項。
步驟2 - 將開啟“新建專案”對話方塊。
步驟3 - 從左側窗格中選擇“模板”→“Visual C#”→“Windows”。
步驟4 - 在中間窗格中,選擇“控制檯應用程式”。
步驟5 - 在“名稱”欄位中輸入專案名稱“NHibernateDemoApp”,然後單擊“確定”繼續。
步驟6 - Visual Studio建立專案後,您將在“解決方案資源管理器”視窗中看到許多顯示的檔案。
正如您所知,我們已經建立了一個簡單的控制檯應用程式專案,現在我們需要將NHibernate包包含到我們的控制檯專案中。
轉到“工具”選單,然後選擇“NuGet包管理器”→“包管理器控制檯”,這將開啟“包管理器控制檯”視窗。
指定上面包管理器控制檯視窗中顯示的命令,然後按Enter鍵,它將下載所有NHibernate依賴項並建立對所有必需程式集的引用。安裝完成後,您將看到如下所示的訊息。
現在我們已經添加了NHibernate,我們可以開始實現。因此,我們將從對映一個名為Student的非常簡單的表開始,該表只有一個名為ID的整數主鍵以及FirstName和LastName列。
我們需要一個類來表示這個學生,所以讓我們建立一個名為Student的新類,方法是右鍵單擊解決方案資源管理器中的專案,然後選擇“新增”→“類”,這將開啟“新增新項”對話方塊。
在名稱欄位中輸入Student.cs,單擊“新增”按鈕。在這個Student類中,我們需要有一個名為ID的整數主鍵,並且我們需要建立這個字串,FirstName和LastName欄位,如下所示的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; }
}
}
在處理NHibernate應用程式中的模型時,最簡單的方法是將所有欄位設為virtual。所以這是我們將使用的簡單的NHibernate模型,並將它對映到後端資料庫。
現在讓我們轉到Program類中的Main方法,並建立一個新的NHibernate配置物件。
我們需要提供的第一個內容是連線字串。這是一個特定於資料庫的連線字串,查詢連線字串最簡單的方法是右鍵單擊SQL Server物件資源管理器中的資料庫,然後選擇“屬性”。
它將開啟“屬性”視窗,現在向下滾動,您將在“屬性”視窗中看到“連線字串”欄位。
複製連線字串並在程式碼中指定。以下是Main方法的實現,我們需要在其中進行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可用於構建會話,這大致類似於資料庫連線。因此,在using塊中使用它是一種合適的方法。我可以說var session等於sessionFactory.OpenSession,我想要在它的事務內部執行此操作。
開啟會話後,我們可以告訴會話開始一個新的事務,然後我們可以在其中執行一些邏輯。因此,執行一些資料庫邏輯,最後提交該事務。