流畅的NHibernate ExportSchema没有连接字符串

时间:2010-05-06 09:15:55

标签: database nhibernate configuration fluent schemaexport

我想在没有声明实际数据库连接字符串的情况下生成数据库脚本。

要做到这一点,我现在使用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配置对象,而不需要在场景后面有真正的数据库...而且我无法做到这一点。

如果有人有想法的话。

2 个答案:

答案 0 :(得分:1)

这就是我用的。我的错误是调用BuildSessionFactory尝试连接数据库:

        var config = Fluently.Configure()
          .Database(MsSqlConfiguration.MsSql2008)
          .Mappings(m =>
            m.FluentMappings.AddFromAssemblyOf<SessionManager>());

        new SchemaExport(config.BuildConfiguration())
                .SetOutputFile(filedestination)
                .Create(false, false);

答案 1 :(得分:0)

尝试使用:

.Create(false, false);

取代

.Execute(false, false, false); 

不要将connectionstring属性添加到IPersistenceConfigurer(fluentDatabaseProvider)。