我仍然对NHibernate架构导出和创建感到困惑 . 我想要实现的是导出模式drop-create sql文件和/或根据应用程序配置重新创建数据库模式 .
显然我开始了
private void BuildSchema(NHConf.Configuration cfg){
var schema = new SchemaExport(cfg);
schema.SetOutputFile(filename);
schema.Create(true, true);
schema.Drop(true, true);
}
但最近我发现,实际上导致我的架构重新创建的是NHConf.Environment.Hbm2ddlAuto设置为'create'而SchemaExport没有任何内容 .
此外,存在导出的SQL模式的文件存在,但它们都是空的(0KB),这是我的主要问题,因为我通过Hbm2ddlAuto属性管理模式重新创建 .
有任何想法吗?
EDIT: 在cfg.BuildSessionFactory()之前调用BuildSchema方法
我将FluentNHibernate与NH 3.1和Oracle 11g一起使用
2 回答
在您的方法中,您执行drop-create然后删除并启用写入数据库 .
这足以创建文件,请确保正确设置文件名
在数据库中创建它,这对我有用
如果您使用的是Fluent配置,请检查您的映射文件:
在我的情况下,我评论这一行和架构导出到文件现在工作!
这篇文章让我朝着正确的方向前进:http://lostechies.com/rodpaddock/2010/06/29/using-fluent-nhibernate-with-legacy-databases/