要對映的模型樣本

NHibernate 使用類對映到表或檢視。建立 Plain Old CLR Object (POCO,有時稱為普通的普通 CLR 物件)是持久化類的一種很好的做法。甲 POCO 具有通過標準的 .NET 屬性機制可訪問其資料,遮蔽從公開顯示介面的內部表示。

namespace Project
{
    public class Customer
    {
        public virtual string Id { get; set; }

        public virtual string Name { get; set; }

        public virtual char Sex { get; set; }

        public virtual float Weight { get; set;}

        public virtual bool Active { get; set;}

        public virtual DateTime Birthday { get; set;}

        public Customer()
        {
        }
    }
}

NHibernate 的屬性型別使用不受限制:可以對映所有 .NET 型別和基元(如 string,char 和 DateTime),包括 System.CollectionsSystem.Collections.Generics 名稱空間中的類。你還可以對映實體之間的關係,具有引用另一個實體型別的屬性。你可以將它們對映為值,值集合或與其他實體的關聯。這裡名為 Id 的屬性是一個特殊屬性,表示該類的資料庫識別符號(主鍵),強烈建議像 Cat 這樣的實體使用。NHibernate 只能在內部使用識別符號,而不必在類中宣告它們,但我們會失去應用程式體系結構的一些靈活性。

不必為持久化類實現特殊介面,也不必從特殊的根持久化類繼承子類。NHibernate 也不使用任何構建時處理,例如 IL 操作; 它完全依賴於 .NET 反射和執行時類增強。因此,在 NHibernate 的 POCO 類中沒有任何依賴,我們可以將它對映到資料庫表或檢視。

為了使上述執行時類增強工作,NHibernate 要求將實體類的所有公共屬性宣告為 virtual。實體類必須有一個無引數建構函式(protectedpublic),用於 NHibernate 建立物件。