Fluido NHibernate ExportSchema sin cadena de conexión
-
03-10-2019 - |
Pregunta
Quiero generar una secuencia de comandos de base de datos sin tener una cadena real conexión a la base declarada.
Para hacer esto para Ahora uso bases NHibernate ExportSchema en una configuración de NHibernate generado con Fluido NHibernate esta manera (durante mi método de creación 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 es un IPersistenceConfigurer FluentNHibernate que se necesita para obtener el dialecto SQL adecuado para la creación de bases de datos.
Cuando se crea la fábrica con una base de datos existente, todo funciona bien. Pero lo que quiero hacer es crear un objeto de configuración de NHibernate en un motor de base de datos seleccionada y sin una base de datos real detrás de la escena ... y no logran hacer esto.
Si alguien tiene alguna idea.
Solución
Trate de usar:
.Create(false, false);
inplace de
.Execute(false, false, false);
No agregue la propiedad ConnectionString a la IPersistenceConfigurer (fluentDatabaseProvider).
Otros consejos
Esto es lo que solía. Mi error fue llamando BuildSessionFactory que trata de conectarse a la base de datos:
var config = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008)
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<SessionManager>());
new SchemaExport(config.BuildConfiguration())
.SetOutputFile(filedestination)
.Create(false, false);