使用Fluent NHibernate在PostgreSQL中自动创建模式

时间:2013-08-19 20:20:37

标签: postgresql nhibernate fluent-nhibernate hbm2ddl

如何在Fluent Nhibernate中自动创建数据库架构? 我的配置是:

  public static ISessionFactory CreateDatabase() {
  switch (4) {
    case 4: // Postgress
    _sessionFactory = Fluently.Configure()
      .Database(PostgreSQLConfiguration.PostgreSQL82.ConnectionString(ConnectionString))
      .ExposeConfiguration(c => {
        c.SetProperty("cache.use_second_level_cache", "false");
        c.SetProperty("cache.use_query_cache", "false");
      })
      .ExposeConfiguration(SchemaMetadataUpdater.QuoteTableAndColumns)
      .ExposeConfiguration(x => new SchemaUpdate(x).Execute(false, true))
      .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Pessoa>())
      .CurrentSessionContext<WebSessionContext>()
      .BuildConfiguration()
      .BuildSessionFactory();
    break;
  }
  _sessionFactory.Dispose();
  return _sessionFactory;
}

目前有一个使用NpgsqlCommand创建的方法。

1 个答案:

答案 0 :(得分:3)

要使用NHibernate创建架构,请使用SchemaExport类:

Configuration cfg = ....;
new SchemaExport(cfg).Create(false, true);

NHibernate参考,20.1.2. Running the tool部分和前一部分中的更多细节。