Heim  >  Artikel  >  Datenbank  >  ORM利器:NHibernate(二)使用CodeSmith快速生成映射文件和映射

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

WBOY
WBOYOriginal
2016-06-07 15:59:231153Durchsuche

在上一篇文章《 ORM利器:NHibernate(一)简介》,我们对NHibernate做了简要介绍,接下来的系列文章将以Demo的形式和大家分享使用NHibernate的初步使用。 一 CodeSmith简介 本文以表 自动生成NHibernate的映射文件和映射类的实例 来说明一下本软件的使用方

在上一篇文章《 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映射文件和映射类,敬请期待!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn