Question

Je veux générer un script de base de données sans avoir une chaîne de connexion de base de données réelle déclarée.

Pour ce faire pour l'instant j'utilise des bases NHibernate ExportSchema sur une configuration NHibernate générée avec Fluent NHibernate cette façon (au cours de ma méthode de création 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 est un FluentNHibernate IPersistenceConfigurer qui est nécessaire pour obtenir le dialecte SQL approprié pour la création de bases de données.

Lorsque l'usine est créé avec une base de données existante, tout fonctionne bien. Mais ce que je veux faire est de créer un objet de configuration NHibernate sur un moteur de base de données sélectionnée sans véritable base de données derrière la scène ... Et je ne parvient pas à le faire.

Si quelqu'un a une idée.

Était-ce utile?

La solution

Essayez d'utiliser:

.Create(false, false);

enplace de

.Execute(false, false, false); 

Ne pas ajouter la propriété ConnectionString à la IPersistenceConfigurer (fluentDatabaseProvider).

Autres conseils

est ce que je.

: Mon erreur a été appelle buildSessionFactory qui tente de se connecter à la base de données
        var config = Fluently.Configure()
          .Database(MsSqlConfiguration.MsSql2008)
          .Mappings(m =>
            m.FluentMappings.AddFromAssemblyOf<SessionManager>());

        new SchemaExport(config.BuildConfiguration())
                .SetOutputFile(filedestination)
                .Create(false, false);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top