使用NHibernate创建表结构方法
来源:互联网 发布:nginx版本查看 编辑:程序博客网 时间:2024/05/23 20:45
NHibernate是一个比较好用的持久化组件,通常我们编写好我们的表-对象映射文件之后,需要建立数据库表结构,我们可以手工的方式来建立,当然我们也可以通过更加简便的方式来完成.因为NHibernate中已经为我们提供了相应的工具.那就是NHibernate.Tool.hbm2ddl.SchemaExport类.我们可以通过这样的方法来调用NHibernate.Tool.hbm2ddl.SchemaExport实现脚本生成.
1.首先在引用NHibernate的项目中,新建一个单元测试项目.在一个类中,右键点击[Create Unit Tests..]选项,弹出新建测试相应的项目,类,方法选择及项目输出名字等设置对话框
2.按默认点击[OK]
3.进度条走完,测试项目创建成功了
4.我们进到新建的一个测试类中,随便选择一个测试的方法,例如这里,我选择自动生成用来测试SaveTypes方法的测试方法 SaveTypesTest(). 自动生成的SaveTypesTest()方法方法体如下:
/// <summary> ///A test for SaveTypes ///</summary> [TestMethod()] public void SaveTypesTest() { TypesBLL target = new TypesBLL(); // TODO: Initialize to an appropriate value Types t = null; // TODO: Initialize to an appropriate value target.SaveTypes(t); Assert.Inconclusive("A method that does not return a value cannot be verified."); }
5.我们可以在SaveTypesTest()方法体中加入生成表结构的相关代码:
//添加引用: using NHibernate; /// <summary> ///A test for SaveTypes ///</summary> [TestMethod()] public void SaveTypesTest() { //获取当前NHibernate中的配置信息 NHibernate.Cfg.Configuration _cfg = new NHibernate.Cfg.Configuration().Configure(); //用NHibernate.Tool.hbm2ddl.SchemaExport生成表结构到D:\sql.sql文件当中 NHibernate.Tool.hbm2ddl.SchemaExport export = new NHibernate.Tool.hbm2ddl.SchemaExport(_cfg); export.SetOutputFile("D:\\sql.sql"); //设置输出目录 export.Drop(true, true);//设置生成表结构存在性判断,并删除 export.Create(true, true);//设置是否生成脚本,是否导出来 TypesBLL target = new TypesBLL(); // TODO: Initialize to an appropriate value Types t = null; // TODO: Initialize to an appropriate value target.SaveTypes(t); Assert.Inconclusive("A method that does not return a value cannot be verified."); }
6.好了之后,我们点击右键,选择[Run Tests],可能运行测试的时候,会有找不到文件的提示,这个可能是NHibernate依赖的组件没有复制到Test项目中bin\debug\目录下面来,如
Iesi.Collections.dll,Antlr3.Runtime.dll之类的,另一个原因是D:\sql.sql文件没有建立.我们可以手工在D:\下建一个空白的sql.sql文件.
7.运行测试完成之后,我们可以看到数据库已经为我们生成了映射文件中对应的数据库表,D:\sql.sql 文件中也有相应的脚本生成.如果我们生成表之后,表结构有变化怎么办,Nhibernate已经想到了一点,SchemaExport使用以下的方法实现public void Execute(bool script, bool export, bool justDrop).
比如说我们可以用Excute方法来生成映射文件中属性变化引起的数据表结构变化的更改/更改sql脚本.
当然,SchemaExport工具当前还有一些不太完善的地方,期待新版本的发布能改善一下.
- 使用NHibernate创建表结构方法
- nhibernate使用
- nhibernate使用
- Nhibernate 使用
- 使用nHibernate
- Nhibernate创建模型
- NHibernate中使用Equals方法的一个疑问
- 查看mysql表结构和表创建语句的方法
- mysql 查看表结构和表创建语句的方法
- 查看mysql表结构和表创建语句的方法
- 查看mysql表结构和表创建语句的方法
- 查看mysql表结构和表创建语句的方法
- 查看mysql表结构和表创建语句的方法
- 创建数据库/查看mysql表结构的方法
- postgres创建和数据表相同结构的表的方法
- [转]NHibernate配置方法
- NHibernate.Profiler918破解方法
- NHibernate扩展方法(-) --NHibernateHelper
- 构建iphone聊天应用程序
- 正则相同字符重复连续出现
- ORACLE in与exists的选择
- RTP协议分析
- [翻译]asp.net 2.0中的url映射
- 使用NHibernate创建表结构方法
- YY有理!下一代iPhone概念由你来!
- C++ Builder中的TDBGrid控件
- 自己做项目
- 修复 Android SDK Debug Monitor 与 Snow Leopard 的兼容性问题
- 导出类中静态成员变量地址唯一性
- 简单的Makefile文件
- Ruby 调用ie ,excel等
- Ajax异步取数据,下拉框联动