我想在没有声明实际数据库连接字符串的情况下生成数据库脚本。
为此,我现在使用 NHibernate ExportSchema 基于使用 Fluent NHibernate 生成的 NHibernate 配置(在我的 ISessionFactory 创建方法期间):
FluentConfiguration configuration = Fluently.Configure();
//Mapping conf ...
configuration.Database(fluentDatabaseProvider);
this.nhibernateConfiguration = configuration.BuildConfiguration();
returnSF = configuration.BuildSessionFactory();
//Later
new SchemaExport(this.nhibernateConfiguration)
.SetOutputFile(filePath)
.Execute(false, false, false);
fluentDatabaseProvider 是一个 FluentNHibernate IPersistenceConfigurer,它是获取用于创建数据库的正确 sql 方言所必需的。
当使用现有数据库创建工厂时,一切正常。但我想要做的是在选定的数据库引擎上创建一个 NHibernate 配置对象,而不需要在幕后使用真正的数据库......而且我无法做到这一点。
如果有人有一些想法。