欢迎投稿

今日深度:

ORM利器:NHibernate(二)使用CodeSmith快速生成映射

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数据层。汉字不支持的解决办法:
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2503.html NewsArticle ORM利器:NHibernate(二)使用CodeSmith快速生成映射文件和映射类,ormcodesmith 在上一篇文章《ORM利器:NHibernate(一)简介》,我们对NHibernate做了简要介绍,接下来的系列文章将以Demo的形...
评论暂时关闭