Fluent NHibernate - Создавайте схему базы данных, только если она не существует

У меня есть приложение, в котором я использую 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 () , но ничего подобного не вижу. Я вижу некоторые возможности хакерского решения, но каков типичный рекомендуемый способ справиться с этим?

36
задан Keith Hoffman 31 January 2012 в 00:30
поделиться