【问题标题】:Fluent NHibernate ExportSchema without connection string没有连接字符串的流畅 NHibernate ExportSchema
【发布时间】:2011-02-16 07:37:17
【问题描述】:

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

为此,我现在使用 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 配置对象,而无需在后台使用真正的数据库......而我无法做到这一点。

如果有人有什么想法。

【问题讨论】:

  • 您找到答案了吗?我也有同样的要求。

标签: database nhibernate configuration fluent schemaexport


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    尝试使用:

    .Create(false, false);
    

    代替

    .Execute(false, false, false); 
    

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

    【讨论】:

      猜你喜欢
      • 2011-12-16
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      相关资源
      最近更新 更多