Свободный Nibernate ExportSchema без подключения строки
-
03-10-2019 - |
Вопрос
Я хочу создать сценарий базы данных, не имея реальную строку подключения к базе данных.
Для этого я использую основания EXPERTSCHEMA NHIBERNATE на конфигурации Nhibernate, сгенерированную с беглым Nibernate таким образом (во время моего метода создания IssessiveFactory):
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 - это непреклоненный IPERSISTECHONFECHONERFIGERHER, который необходимо получить правильный диалект SQL для создания базы данных.
Когда фабрика создана с существующей базой данных, все работает нормально. Но то, что я хочу сделать, это создать объект конфигурации NhiberNate на выбранном двигателе базы данных без реальной базы данных за сценой ... И мне не удается сделать это.
Если кто-то имеет некоторую идею.
Решение
Попробуйте использовать:
.Create(false, false);
на месте
.Execute(false, false, false);
Не добавляйте свойство ConnectionString для IPERSISTECHONSECONFIGER (FLYENTDATABASEPROVIDER).
Другие советы
Это то, что я использовал. Моя ошибка называла BuildSessionSessionStory, которая пытается подключиться к базе данных:
var config = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008)
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<SessionManager>());
new SchemaExport(config.BuildConfiguration())
.SetOutputFile(filedestination)
.Create(false, false);