要對映的模型樣本
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.Collections
和 System.Collections.Generics
名稱空間中的類。你還可以對映實體之間的關係,具有引用另一個實體型別的屬性。你可以將它們對映為值,值集合或與其他實體的關聯。這裡名為 Id
的屬性是一個特殊屬性,表示該類的資料庫識別符號(主鍵),強烈建議像 Cat 這樣的實體使用。NHibernate 只能在內部使用識別符號,而不必在類中宣告它們,但我們會失去應用程式體系結構的一些靈活性。
不必為持久化類實現特殊介面,也不必從特殊的根持久化類繼承子類。NHibernate 也不使用任何構建時處理,例如 IL 操作; 它完全依賴於 .NET 反射和執行時類增強。因此,在 NHibernate 的 POCO 類中沒有任何依賴,我們可以將它對映到資料庫表或檢視。
為了使上述執行時類增強工作,NHibernate 要求將實體類的所有公共屬性宣告為 virtual
。實體類必須有一個無引數建構函式(protected
或 public
),用於 NHibernate 建立物件。