NHibernate.3.0.Cookbook第二章第9节的翻译

Generating the database

生成数据库

  第一章中, 我们在将可持久化类映射到数据库时,创建了她们之间的映射,但还没有创建数据库.本节介绍如何以映射为基础用两行代码来创建必需的数据表,列,键和关系.

准备

1.   完成本章开始部分的Configuring NHibernate with App.config示例.
2.   在你的电脑上安装Microsoft SQL Ser ver 2008 Express, 使用默认设置.
3.   创建一个名为NHCookbook的空数据库.

提示

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

步骤

1.   打开Program.cs.
2.   添加下述using语句: 

using NHibernate.Tool.hbm2ddl;

3.   在Main函数尾部添加下述代码:

var schemaExport = new SchemaExport(nhConfig);
schemaExport.Create(false, true);

4.   编译运行.
5.   打开数据库查看生成的表.

原理

  在configuration对象中hbm2ddl (hibernate mapping to data definition language)工具使用映射元数据来生成数据库对象的SQL脚本,然后她会连接数据库并运行脚本.

扩展

  另外,当应用程序调用BuildSessionFactory时,我们可以使用hbm2ddl.auto配置属性来自动生成数据库框架. 我们可以将属性设置为下面的值:

  •   update:SchemaUpdate类会更新数据库模式,避免破坏性的变更 . 她只适用于实现了IDataBaseSchema接口的dialects.
  •   create: SchemaExport类会为一个新的数据库从头开始创建数据库模式.
  •   create-drop:  SchemaExport会先删除现有数据库再重新创建数据库,然后创建数据库的各个表.
  •   validate :  SchemaValidate会基于你的映射来比较现有的数据库和NHibernate所期望的数据库的模式.和update一样,要求dialect实现IDataBaseSchema接口.

  虽然在开发过程中create-drop非常有用,但是在生产环境中只建议使用validate,因为一个很小的错误都可能酿成严重的后果. 相反,在设置生产环境下的数据库时,应该自己去创建数据库脚本并显式的运行她,如下节所示. 

转载于:https://www.cnblogs.com/carfieldSE/archive/2012/07/11/2586433.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值