迷恋弦哥

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Using NHibernate Schema Tool

使用NHibernate Schema Tool

  在许多情况下,一些大的处理过程中需要生成或更新您的数据库.比如一个构建脚本或安装的过程. 本节将介绍如何使用命令行工具来完成我们的hbm2ddl任务.

准备

  从http://nst.codeplex.com/上可以下载到最新版的NHibernate Schema Tool .安装步骤如下:
1.   在C:\Program Files下新建一个名为NHibernateSchemaTool的文件夹.
2.   将nst.exe复制到该文件夹.
3.   将C:\Program Files\NHibernateSchemaTool添加到环境变量PATH中.
  完成NHibernate Schema Tool的安装后,再进行下面的步骤:
1.   完成本章开始部分的Configuring NHibernate with App.config示例.
2.   在你的电脑上安装Microsoft SQL Ser ver 2008 Express, 使用默认设置.
3.   创建一个名为NHCookbook的空数据库.

提示

  NHibernate的该项功能对所有的RDBMS适用. 请依据不同的RDBMS来调整dialect和连接字符串设置.

步骤

1.   为项目添加一个名为hibernate.cfg.xml的文件,代码如下:

View Code
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration
xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
  <property name="proxyfactory.factory_class">
    NHibernate.ByteCode.Castle.ProxyFactoryFactory,   NHibernate.ByteCode.Castle
  </property>
  <property name="dialect">
    NHibernate.Dialect.MsSql2008Dialect, NHibernate
  </property>
  <property name="connection.connection_string">
    Server=.\SQLExpress; Database=NHCookbook; Trusted_
Connection=SSPI
  </property>
</session-factory>
</hibernate-configuration>

2.   打开该文件的属性页,将【复制到输出目录】设置为【始终复制】.
3.   编译.
4.   打开命令提示行窗口,将目录切换到你的已经编译好的映射程序集和hibernate.cfg.xml所在的目录.

提示  

  快速打开命令提示行窗口:右击项目,选择在Windows资源管理器中打开文件夹. 打开bin文件夹.按住Shift键,右击Debug文件夹,选择在此处打开命令行窗口.
5.   运行下述命令:

nst /c:hibernate.cfg.xml /a:Eg.Core.dll /o:Create.

原理

  NHibernate Schema Tool是hbm2ddl工具的一个命令行形式的封装 .这使得NST适合应用于创建数据库脚本和持续集成服务器(continuous integration servers).

  • /c 参数指定所要使用的配置文件. 没错,hibernate.cfg.xml的内容和app.config中的hibernate-configuration节点几乎完全相同.
  • /a 参数指定程序集,该程序集包含映射文件和可持久化类.
  • /o:创建NHibernate操作数据库对象的设置,支持Create ,Update和Delete.

扩展

  NST有几个命令行的设置选项,如下:

  

命令行设置 描述
/c:<path-to-hibernate-config>  指定所要使用的Nhibernate配置文件
/a:<assembly[;assembly2 ]> 包含.hbm.xml(属性设为嵌入式)文件的程序集或程序集列表的路径.
  多个程序集用分号(;)分割.这些程序集也可能包含可持久化类.
/m:<assembly[;assembly2]>  包含可持久化类的程序集或程序集列表的路径,多个程序集用分号(;)分割
/d:<path[;path2]>  包含.hbm.xml映射文件的一个/多个目录.
/s  生成脚本,但不执行.将脚本输出到控制台.
/v  生成脚本并执行.把脚本输出到控制台.
/o:<Create|Update|Delete>  指定Create, Update, 或Delete操作
posted on 2012-07-12 11:13  迷恋弦哥  阅读(243)  评论(0编辑  收藏  举报