Где я должен поместить свой метод NHibernate SchemaExport? - PullRequest
0 голосов
/ 18 августа 2010

Где я должен поместить свой метод NHibernate SchemaExport и как мне его вызвать, когда я решу воссоздать базу данных?

Должен ли я оставить это в моем проекте запуска (проект asp.net mvc)? Должен ли я создать отдельный консольный проект только для экспорта моей схемы?

Я думаю, что все эти вопросы связаны с тем, что я не хочу, чтобы экспорт схемы запускался при каждом запуске веб-приложения.

Я использую свободный nhibernate, если это имеет значение.

Ответы [ 3 ]

2 голосов
/ 18 августа 2010

Я бы выделил это в отдельную сборку; затем вы можете использовать его из разных мест (консольное приложение, настройка интеграционного теста, установщик и т. д.).

1 голос
/ 19 августа 2010

Лично я использую два Теста (в данном случае используя Nunit) для создания или обновления базы данных.В обоих случаях я только генерирую скрипт, так как я хочу получить полный контроль над тем, когда база данных будет создана или обновлена.

    [Test]
    [Ignore]
    public void Create_Database_Schema_From_MappingFiles()
    {
        Configuration cfg = new Configuration();
        cfg.Configure();
        var schema = new SchemaExport(cfg);

        schema.Create(true, false);
    }

    [Test]
    [Ignore]
    public void Update_an_existing_database_schema()
    {
        Configuration cfg = new Configuration();
        cfg.Configure();
        var update = new SchemaUpdate(cfg);
        update.Execute(true, false);
    }
1 голос
/ 18 августа 2010

Как идея: вы можете поместить его в ProjectInstaller, который может принимать аргумент командной строки. Так что для этого вам не понадобится дополнительное консольное приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...