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.

¿Fue útil?

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top