У меня есть приложение, в котором я использую Fluent Nhibernate для создания своей базы данных. До сих пор я каждый раз воссоздаю схему базы данных. Код, который делает это так:
public NhibernateSessionFactory(IPersistenceConfigurer config)
{
_sessionFactory = Fluently.Configure().
Database(config).
Mappings(m => m.FluentMappings.AddFromAssemblyOf<MappingsPersistenceModel>()).
ExposeConfiguration(BuildSchema).
BuildSessionFactory();
}
private static void BuildSchema(Configuration config)
{
// if (DbExists(config))
// return;
new SchemaExport(config).Create(false, true);
}
Обратите внимание на "if (DbExists(config))
". Это то, что я хотел бы сделать. Я хотел бы создать схему, только если она на самом деле еще не существует. И на следующем этапе - я хотел бы обновить
это должно быть создано, если это не актуально.
Как мне этого добиться? Я ожидаю config.DatabaseExists()
, но ничего подобного не вижу. Я вижу некоторые возможности хакерского решения, но каков типичный рекомендуемый способ справиться с этим?