快速生成NHibernate的映照文件以及映射类的利器 —— codesmith软件

 

1.    
Codesmith软件简介

 

(1)
Codesmith软件是一模一样栽基于模板的代码生成工具,在ORM中,它会帮我们生成实体类、XML配置文件,从而简化了俺们有的底开支工作,它的应用类于ASP.NET的语法来扭转任意档次的代码和文书,使用Codesmith可以生成包括简单的强类型集合和完整应用程序在内的其它东西。

 

(2)
当我们因此ASP.NET开发网站或项目变更应用程序的时,我们常常用好有重复性的天职,例如:编写数据访问代码或者很成由定义集合,Codesmith在是上特意的发因此,因为咱们得以编制模板自动完成这些职责,从而得以增进我们的工作效率。

 

(3)
下面我以因自动生成NHibernate的照射文件与映射类的实例来证实一下如约软件的用方法,其它的我们可自己研究研讨,因为自己要因此到这些。

 

2.    
第一步下充斥软件

 

(1)
输入网址:http://www.codesmithtools.com/我们得以下载代码辅助生成器Codesmith。下载好后我们得安装,安装步骤同我们安其他的软件都如出一辙。这款软件我们能够免费使用1独月,一个月份后我们得以搜索找怎么破解或者进软件。

 

3.    
第二步:下载需要设置的NHibernate组件

 

(1)
因为自身只要自动生成的是NHibernate的照文件及类,但是仍软件本身并未自带,所以我们需要下载nhibernate
template的一个组件,然后安装及CodeSmith。下面我截图大致说一下下的艺术。

 

(2)
打开软件CodeSmith,如图:

图片 1

 

 

以自身曾安装了NHibernate_template,所以现在一度显得,如果没有装的话,单击像只稍文件夹的地方,找到自己下载的机件的地方,然后上加进去。然后就开就是如图所示:

 

图片 2

 

(3)
接下来怎么操作为??呵呵,很简单的,看到出个NHibernate.cst文件单击如图所示:

 

 

图片 3

 

 

(4)
接下来我们得以视上图所著之图样,我详细的解释一下,OutputDirectory的意是咱而以转的投射文件与映射类放在磁盘的那里,当然啦,这是咱好选的。

 

(5)
我要说一下做要紧之就算是SourceDatabase,因为当时是怎样自咱数据库中读取出来数据库的,我们单击最后给之老三独点之按钮,会起如图所示的界面,

 

图片 4

 

这会儿我们可以DataSource(数据库资源)下拉看是不是有我们需要之数据库,如果有的话,我们得直接单击Select,如果没有底说话我们好单击后面来三单小点的按钮,这时候会产出如图所示的界面:

 

 

图片 5

 

 

(6)
然后我们单击Add按钮,将会晤启动另外一个绝妙的界面,如图所示:

 

 

图片 6

 

 

(7)
重点的介绍是这里哦,在此间有只Name的文本框我们可填充入我们所急需之数量库名,然后有只Provider
Type的下拉列表框,在此框里面我们得选取我们用操作的数据库,如下图:

 

图片 7

 

 

 

(8)
因为自己操作的SQL Server
2005数据库,所以我选了SqlSchemaProvider这个特性代表数据库,如果你下的是别的数据库的话,你吗可以自己选择。然后发只Connection
String的文本框,它是描写连接字符串的,如果我们协调会写的言语一直写副到中间,然后单击Test按钮测试是否行得通,如果未会见刻画的说话,我们可以单击三单点的按钮然后超过到如图所示的页面:

 

 

图片 8

 

 

(9)
这个页面我们尽熟悉了吧,只要是仿过ASP.NET的都见面硌到者页面,所以自己就隐瞒了,但咱填写好信息后而就OK按钮,会于前面的文本框中自动生成链接字符串,然后我们以单击那个页面的OK按钮,然后我们在同等重合一重合的退来,这里自己便当未截图证明了,最后选择到我们的数据库。

 

(10)
Assembly是咱种之顺序集的讳,我们可以输入到内,如果非清楚之语句我们得还Visual
Studio项目面临之一个工文件下面单击右键——属性,我们就可以看到程序集和默认命名空间的名,如图所示:

 

图片 9

 

 

 

(11)
ForceId默认就是选中的,也就是True的意(如果表中的ID为主键),它的意向是不怕是劫持NhibernateSample所表示的数据库的所有表需要出主键,

 

(12)
NameSpace即命名空间,我们可以跟查阅程序集的章程同样查看那个的命名空间。

 

(13)
RemoveTablePrefix使该默认的价值就实施。

 

末尾单击Generate按钮,将会见于公标识的职生成映射文件及映射类。

 

4.    
生成的档次之代码

 

(1)
我之所以之数据库如图所示:建立一个NHibernate数据库,在数据库中树立平等摆users表,其中发明的字段如图所示:

 

 

图片 10

 

 

(2)
生成的投射文件及映射类如下:

 

映射类:users.cs

 

using System;

 

using System.Collections;

 

 

 

namespace Test.Model

 

{

 

      
#region User

 

 

 

       ///<summary>

 

       /// User object
for NHibernate mapped table ‘users’.

 

       ///</summary>

 

       public class User

 

       {

 

             
#region Member Variables

 

      

 

              protected string _id;

 

              protected string _name;

 

              protected string _password;

 

              protected string _emailAddress;

 

              protected DateTime _lastLogon;

 

             
#endregion

 

             
#region Constructors

 

              public User() { }

 

              public User( string name, string password, string emailAddress, DateTime lastLogon )

 

              {

 

                    
this._name = name;

 

                    
this._password =
password;

 

                    
this._emailAddress =
emailAddress;

 

                    
this._lastLogon =
lastLogon;

 

             
}

 

             
#endregion

 

             
#region Public Properties

 

              public string Id

 

             
{

 

                    
get {return _id;}

 

                    
set

 

                    
{

 

                           
if ( value != null && value.Length > 20)

 

                                  
throw new ArgumentOutOfRangeException(“Invalid value for Id”, value, value.ToString());

 

                           
_id = value;

 

                    
}

 

             
}

 

              public string Name

 

             
{

 

                    
get { return _name; }

 

                    
set

 

                    
{

 

                           
if ( value != null && value.Length > 40)

 

                                  
throw new ArgumentOutOfRangeException(“Invalid value for Name”, value, value.ToString());

 

                           
_name = value;

 

                    
}

 

             
}

 

              public string Password

 

             
{

 

                    
get { return _password; }

 

                    
set

 

                    
{

 

                           
if ( value != null && value.Length > 20)

 

                                  
throw new ArgumentOutOfRangeException(“Invalid value for Password”, value, value.ToString());

 

                           
_password = value;

 

                    
}

 

             
}

 

              public string EmailAddress

 

             
{

 

                    
get { return _emailAddress; }

 

                    
set

 

                    
{

 

                           
if ( value != null && value.Length > 40)

 

                                  
throw new ArgumentOutOfRangeException(“Invalid value for EmailAddress”, value, value.ToString());

 

                           
_emailAddress = value;

 

                    
}

 

             
}

 

              public DateTime LastLogon

 

             
{

 

                    
get { return _lastLogon; }

 

                    
set { _lastLogon = value; }

 

             
}

 

             
#endregion

 

       }

 

      
#endregion

 

}

 

(2) 映射文件users.hbm.xml

 

<?xmlversion=”1.0″encoding=”utf-8″
?>

 

<hibernate-mappingxmlns=”urn:nhibernate-mapping-2.0″>

 

      
<classname=”Test.Model.User,
Test.Model”table=”users”>

 

             
<idname=”Id”type=”String”unsaved-value=”null”>

 

      
<columnname=”LogonID”length=”20″sql-type=”varchar”not-null=”true”unique=”true”/>

 

                    
<generatorclass=”native” />

 

             
</id>

 

             
<propertyname=”Name”type=”String”>

 

                    
<columnname=”Name”length=”40″sql-type=”varchar”not-null=”false”/>

 

             
</property>

 

             
<propertyname=”Password”type=”String”>

 

                    
<columnname=”Password”length=”20″sql-type=”varchar”not-null=”false”/>

 

             
</property>

 

             
<propertyname=”EmailAddress”type=”String”>

 

                    
<columnname=”EmailAddress”length=”40″sql-type=”varchar”not-null=”false”/>

 

             
</property>

 

             
<propertyname=”LastLogon”type=”DateTime”>

 

                    
<columnname=”LastLogon”length=”8″sql-type=”datetime”not-null=”false”/>

 

             
</property>

 

      
</class>

 

</hibernate-mapping>

 

小结,发现是勿是死爽呢,这些代码都自动生成了,我们设以有点的比如我们的需改改就行,大致的应用方式就是介绍到这里吧,里面还有众多好用的物呢,有时光的语句我们得研究研讨之。嘿嘿

 

源码下载地址:http://www.chuxinm.com/Shop/Detail/Detail?id=b88e9907dbaa4b3db297443081ab238d 

 

http://download.csdn.net/detail/hanyinglong/4491791就是自个儿之下载地址,有得的得错过这里下载

 

相关文章