『Spring.NET+NHibernate+泛型』框架搭建之Model(二)
按照搭建專案的順序來比較好描述一些,我一般先搭建實體層,本節內容純屬於NHibernate範疇。先上圖和程式碼,然後對著圖和程式碼逐一講解,以角色表為例:
T_Role表:
資料庫表設計很簡單,ID為主鍵,並且是自增長的,其他欄位還包括角色名稱(Name)、描述(Content)、排序(Sort)、狀態(Status)、Del(是否刪除)。這裡就不對T_Role表贅述了。
T_Role類:
using System;
//Nhibernate Code Generation Template 1.0
//author:MythXin
//blog:www.cnblogs.com/MythXin
//Entity Code Generation Template
namespace Model{
//T_Role
public class T_Role
{
/// <summary>
/// ID
/// </summary>
public virtual int ID
{
get;
set;
}
/// <summary>
/// Name
/// </summary>
public virtual string Name
{
get;
set;
}
/// <summary>
/// Content
/// </summary>
public virtual string Content
{
get;
set;
}
/// <summary>
/// Order
/// </summary>
public virtual int? Sort
{
get;
set;
}
/// <summary>
/// 1 啟用(預設)
///0 禁用
/// </summary>
public virtual string Status
{
get;
set;
}
/// <summary>
/// 1 正常(預設)
///0 刪除
/// </summary>
public virtual string Del
{
get;
set;
}
}
}
T_Role類必須與T_Role表的欄位一一對應,名字可以不一樣,但是欄位屬性數量和型別必須是一一對應的,此外,每個欄位屬性都必須為virtual的。
T_Role表與T_Role的對映檔案:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Model" >
<class name="Model.T_Role, Model" table="T_Role">
<id name="ID" column="ID" type="int" unsaved-value="0">
<generator class="native"/>
</id>
<property name="Name" type="string" column="Name" />
<property name="Content" type="string" column="Content" />
<property name="Sort" type="int" column="Sort" />
<property name="Status" type="string" column="Status" />
<property name="Del" type="string" column="Del" />
</class>
</hibernate-mapping>
顧名思義,T_Role的對映檔案是對映T_Role類和T_Role表的。注意以下幾點:
(1) 必須按照上述格式書寫,其中:
a. hibernate-mapping固定上述格式,assembly為檔案所在的名稱空間;
b. class標籤中的name為“T_Role的名稱空間.T_Role,T_Role的名稱空間”,table為T_Role表的表名;
c. id標籤為主鍵,必須有主鍵,unsaved-value="0"意思是預設值是0,<generator class="native"/>表示按照資料庫定義的方式處理主鍵,如我定義了自增長;
d. id或property標籤中的name為T_Role類中欄位名稱,而column必須為與之對應的T_Role表的欄位名稱,且資料型別相同;
(2) 檔案必須以.hbm.xml字尾結尾,如:T_Role.hbm.xml;
(3) 必須右鍵點選檔案-屬性,將生成操作選為“嵌入的資源
說明:T_Role類檔案(.cs檔案)和T_Role對映檔案(.hbm.xml)按理說可以分別放到不同的資料夾,但是這樣放,執行的時候卻提示找不到,最後無奈只能放一起了。要是哪位大神解決了此問題麻煩留言告知,謝謝。另外,檢視和表的方式完全一樣的,對映的時候指定對映的檢視就行了。
最後,實體類和對映檔案都是可以通過程式碼生成器生成的,建議不要自己去寫,容易出錯,還找不出錯在哪裡,用程式碼生成器生成之後不對的修改下就可以了。我使用的動軟程式碼生成器,程式碼生成器連線上資料庫後,右鍵對應的資料庫選擇“模板程式碼批量生成”,選定要生成的表、模板就可以了,操作很簡單,就不詳述了,不清楚的留言,或加入部落格簽名裡的QQ群交流。
貼上Model的目錄圖,並不需要任何多餘的引用:
相關文章
- 泛型(二)泛型
- java泛型之泛型方法。Java泛型
- Go 泛型之泛型約束Go泛型
- java泛型之泛型陣列。Java泛型陣列
- 集合框架-泛型高階之萬用字元框架泛型字元
- 集合框架-引入泛型框架泛型
- bo 框架之 beego 框架 model curd框架Go
- iOS 9之泛型iOS泛型
- 詳解C#泛型(二)C#泛型
- JAVASE之JAVA泛型篇Java泛型
- 【記】《.net之美》之讀書筆記(二) C#中的泛型筆記C#泛型
- Java泛型知識點:泛型類、泛型介面和泛型方法Java泛型
- 泛型類、泛型方法及泛型應用泛型
- 集合框架-泛型類的概述及使用框架泛型
- 集合框架-泛型方法的概述和使用框架泛型
- 集合框架-泛型介面的概述和使用框架泛型
- 泛型協變與抗變(二)泛型
- 集合框架-通過Object轉型問題引入泛型框架Object泛型
- kotlin之泛型的使用Kotlin泛型
- Java基礎之泛型方法Java泛型
- TS系列之介面/類/泛型泛型
- c#進階之泛型C#泛型
- C#之泛型詳解C#泛型
- c++ 泛型 之 TypeTraintsC++泛型AI
- C#泛型類之LISTC#泛型
- C# 之泛型詳解C#泛型
- c#之泛型小記C#泛型
- Java核心之細說泛型Java泛型
- java中泛型之型別萬用字元(?)Java泛型型別字元
- 泛型類和泛型方法泛型
- 【java】【泛型】泛型geneticJava泛型
- 泛型--泛型萬用字元和泛型的上下限泛型字元
- MVVM框架的搭建(二)——專案搭建MVVM框架
- Java基礎之淺談泛型Java泛型
- 【Java面試題】之泛型相關Java面試題泛型
- TypeScript 泛型介面和泛型類TypeScript泛型
- JAVA基礎之九-泛型(通用型別)Java泛型型別
- 泛型泛型