博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NHibernate.3.0.Cookbook第二章第9节的翻译
阅读量:4659 次
发布时间:2019-06-09

本文共 1170 字,大约阅读时间需要 3 分钟。

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

你可能感兴趣的文章
android图形系统详解五:Android绘制模式
查看>>
[剑指offer] 23. 二叉搜索树的后序遍历序列
查看>>
canvas绘画交叉波浪
查看>>
Linux 内核分析
查看>>
试一下:XP ( SP2 ) 本身就支持查杀流氓软件!
查看>>
centos6(7) minimal 基本环境配置
查看>>
P2837晚餐队列安排
查看>>
DP专题
查看>>
UVa 1402 Runtime Error 伸展树
查看>>
笔记本安装SSD固态硬盘详细的优化设置
查看>>
批处理语法介绍
查看>>
FFmpeg 基础库(三)模块组成
查看>>
Linq 查询 与方法调用
查看>>
iOS开源项目(旧)
查看>>
winform的datagridview控件滚动更新数据
查看>>
java中Object类 源代码详解
查看>>
开源控Meteor的个人资料
查看>>
kafka在zookeeper中的存储结构
查看>>
linux上FTP服务器搭建
查看>>
.net 使用AgsXMPP与openfire连接,实现跨平台信息流通。
查看>>