ORM利器:NHibernate(二)使用CodeSmith快速產生對應檔和映射類,ormcodesmith
在上一篇文章《 ORM利器:NHibernate(一)簡介》,我們對NHibernate做了簡要介紹,接下來的系列文章將以Demo的形式和大家分享使用NHibernate的初步使用。
一 CodeSmith簡介
本文以表自動產生NHibernate的對應檔和映射類的執行個體來說明一下本軟體的使用方法。
CodeSmith是一種基於模板的代碼產生工具,其使用類似於ASP.NET的文法來產生任意類型的代碼和檔案。使用 CodeSmith,可以產生包括簡單的強型別集合和完整應用程式在內的任何東西。(弱類型-沒有明顯的類型,會隨著環境的不同自動變換類型;強型別-在聲明時規定其資料類型,保證類的安全,雖然系統也有一定的預設轉換,但是沒有弱類型那麼隨便)
當您產生應用程式時,您經常需要重複完成某些特定的任務,例如編寫資料存取碼或者產生自訂集合。CodeSmith 在這些時候特別有用,因為您可以編寫模板自動完成這些任務,從而不僅提高您的工作效率,而且能夠自動完成那些最為乏味的任務。CodeSmith 附帶了許多模板,包括對應於所有 .NET 集合類型的模板以及用於產生預存程序的模板,但該工具的真正威力在於能夠建立自訂模板。
二 軟體下載
1、下載CodeSmith代碼輔助產生器
本文使用CodeSmith6.5.0完美破解版,並安裝。
2、下載NHibernate template的一個組件
因為因為我要產生的是NHibernate的對應檔和類,但本軟體沒有內建,因此需要下載nhibernate_template的一個組件,如所示:
(三)操作過程
0、利用SQLServer2008建立NHibernate資料庫,表Person,結構如下:
1、利用CodeSmith產生NHibernate的對應檔和映射類
單擊NHibernate.cst檔案,:
OutputDireatory:檔案輸出路徑
SourceDatabase:需要讀取的資料庫檔案
ForceId:True強制資料庫NHibernate中的所有表都需要有主鍵。
Namespace:命名空間
RemoveTablePrefix:預設
選擇相應的資料庫-Add
設定資料庫串連資訊後,進行測試TestConnection:
因為我們操作的是SQLServer2008資料庫,所以這裡選擇SqlSchemaProver。如果你使用的是其它資料庫,可以自行選擇。
可以看到自動產生連結字串
最後單擊Generate按鈕,會自動產生對應檔和映射類,:
3、分析Person.hbm.xml
通過查看自動產生的對應檔Person.hbm.xml,來看一下:對象是如何和表建議映射關係的:
<?xml version="1.0" encoding="utf-8" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"> <!--對象Person和表t_Person建立映射關係--><class name="Test.Model.Person, Test.Model" table="t_Person"> <!--對象Person的Id屬性和表t_Person中欄位t_Id建立映射關係--><id name="Id" type="Int32" unsaved-value="null"><column name="t_Id" length="4" sql-type="int" not-null="true" unique="true"/><generator class="native" /></id> <!--對象Person的Name屬性和表t_Person中欄位t_Name建立映射關係--><property name="Name" type="String"><column name="t_Name" length="50" sql-type="varchar" not-null="false"/></property></class></hibernate-mapping><span style="font-family:FangSong_GB2312;font-size:18px;"></span>
這就是由表自動產生NHibernate的對應檔和映射類(就是我們曾手寫的Entity)的大致的使用方法,是不是很簡單呀?!省去了很多人工的工作量。
接下來的文章,將會在NHibernate的使用教程的Demo中用到產生的Person對應檔和映射類,敬請期待!
可以不可以通過Nhibernate對應檔產生資料庫
你備份了沒有?
如果沒有 你就 殘咯
汗
沒關係的
如果 需要 這樣 的軟體 的話 我很 樂意 幫你找找 的
加我 669614515
怎使用CodeSmith協助NHibernate實體類與hbmxml檔案自動產生
(1)CodeSmith使用 V2.5(2)將NHibernateTemplate整個檔案夾放到C:\Program Files\CodeSmith\v2.5\Samples下。(3)提供對Oracle的支援。用VS2003開啟OracleNativeSchemaProvider項目,項目需要引用SchemaExplorer.dll,可在C:\Program Files\CodeSmith\v2.5下找到該檔案。重新編譯後,將編譯產生的SchemaExplorer.OracleNativeSchemaProvider.dll和SchemaExplorer.OracleNativeSchemaProvider.dll.config檔案拷貝C:\Program Files\CodeSmith\v2.5下,重新開啟CodeSmith可。CodeSmith 4.0的位置就不是這樣的了(4)NHibernate配置樣本:<configSections<sectionname="nhibernate"type="System.Configuration.NameValueSectionHandler,System,Version=1.0.5000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"/</configSections<nhibernate<addkey="hibernate.connection.provider"value="NHibernate.Connection.DriverConnectionProvider"/<addkey="hibernate.connection.driver_class"value="NHibernate.Driver.OracleClientDriver"/<addkey="hibernate.connection.connection_string"value="userid=XTGL;datasource=ORCL;password=GSGL"/<addkey="hibernate.connection.isolation"value="ReadCommitted"/<addkey="hibernate.dialect"value="NHibernate.Dialect.Oracle9Dialect"/</nhibernate(5)使用SessionQuicker操作NHibernate資料層。漢字不支援的解決辦法: