J'essaie d'utiliser FluentNHibernate dans mon projet de test. Le code suivant génère des tables dans la base de données existante:Comment créer une base de données en utilisant FluentNHibernate?
var sessionFactory = FluentNHibernate
.Cfg.Fluently.Configure()
.Database(
MsSqlConfiguration.MsSql2008.ConnectionString(
c => c.FromConnectionStringWithKey("DefaultConnection")))
.CurrentSessionContext("web")
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<SqlCommandFactory>())
.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(false, true))
.BuildSessionFactory();
Cela fonctionne lorsque la base de données existe déjà. Mais comment créer une base de données si elle est absente? La chaîne de connexion à la base de données semble suivante:
Data Source = MAIN \ SQLEXPRESS; Initial Catalog = Magazine, intégré Security = True; Connect Délai d'attente = 15; Crypter = false; TrustServerCertificate = True; ApplicationIntent = ReadWrite ; MultiSubnetFailover = False
Je suis également essayer d'utiliser une autre méthode. Indiqué ci-dessous.
new SchemaExport(cfg).Execute(true, true, false)
Dans ce cas, j'obtiens une autre exception.
System.Data.SqlClient.SqlException: Impossible base de données ouverte "Magazine" demandée par la connexion. La connexion a échoué.
Je modifie la chaîne de connexion.
données Source = (localdb) \ v11.0; AttachDbFilename = | DataDirectory | \ Magazine.mdf Initial Catalog = Magazine; Integrated Security = True
localdb serait la meilleure option dans mon cas. Mais comme dans le premier cas avec SQLEXPRESS j'ai encore reçu une exception.
System.Data.SqlClient.SqlException: Impossible de joindre le fichier '..... \ App_Data \ Magazine.mdf' comme base de données 'Magazine'.
Je suis utilisé Code First pour EF avant et EF créer une base de données si elle est manquante. Comment puis-je créer une base de données en utilisant FluentNHibernate?
Merci pour la réponse. Pleace regarde mes changements en question. 'Create (false, true)' déclenche également une exception. Dans le cas de LocalDB, il s'agit de 'Impossible d'attacher le fichier' et dans le cas de SQLEXPRESS, c'est' L'ouverture de session a échoué'. – Seva
Il semble que quelque chose ne va pas avec votre chaîne de connexion. Essayez de vous connecter à votre base de données en utilisant SSMS ou autre chose –