Fluent NHibernate ExportSchema ohne Verbindungszeichenfolge
-
03-10-2019 - |
Frage
Ich möchte eine Datenbank-Skript generieren, ohne erklärt eine aktuelle Datenbank-Verbindungszeichenfolge mit.
Um dies zu tun, jetzt verwende ich NHibernate ExportSchema basiert auf einer NHibernate-Konfiguration mit Fluent NHibernate auf diese Weise erzeugt (während meiner ISessionFactory Erstellungsmethode):
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 ist ein FluentNHibernate IPersistenceConfigurer, die benötigt wird für die Datenbankerstellung richtigen SQL-Dialekt zu erhalten.
Wenn Fabrik mit einer vorhandenen Datenbank erstellt wird, funktioniert alles einwandfrei. Aber was ich will zu tun ist, ein NHibernate Konfigurationsobjekt auf einem ausgewählten Datenbank-Engine ohne eine echte Datenbank hinter der Szene zu schaffen ... und ich sich nicht schaffen, dies zu tun.
Wenn jemand hat eine Idee.
Lösung
Versuchen Sie es mit:
.Create(false, false);
Inplace von
.Execute(false, false, false);
Do not fügen Sie die Connectionstring-Eigenschaft auf den IPersistenceConfigurer (fluentDatabaseProvider).
Andere Tipps
Dies ist, was ich verwenden. Mein Fehler ruft BuildSessionFactory, die mit der Datenbank zu verbinden versucht:
var config = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008)
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<SessionManager>());
new SchemaExport(config.BuildConfiguration())
.SetOutputFile(filedestination)
.Create(false, false);