接続文字列のない流fluent nhibernate輸出チェマ
-
03-10-2019 - |
質問
実際のデータベース接続文字列を宣言することなく、データベーススクリプトを生成したいと思います。
今のところこれを行うには、このように流fluent nhibernateで生成されたナベナート構成で(私のisessionFactory作成方法中)に、Nhibernate Exportschemaベースを使用します。
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は、データベース作成のために適切なSQL方言を取得するために必要なFluentnhibernate IpersistenceConfigurerです。
工場が既存のデータベースで作成されると、すべてが正常に機能します。しかし、私がやりたいのは、シーンの背後にある実際のデータベースなしで、選択したデータベースエンジンにnhibernate構成オブジェクトを作成することです...そして、私はこれを行うことができません。
誰かがいくつかのアイデアを持っているなら。
解決
使用してみてください:
.Create(false, false);
代わりに
.Execute(false, false, false);
ConnectionStringプロパティをIpersistenceConfigurer(FluentDatabaseProvider)に追加しないでください。
他のヒント
これが私が使用したものです。私の間違いは、データベースに接続しようとするBuildSessionFactoryを呼び出すことでした。
var config = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008)
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<SessionManager>());
new SchemaExport(config.BuildConfiguration())
.SetOutputFile(filedestination)
.Create(false, false);
所属していません StackOverflow