Вопрос

Куда мне поместить свой метод схемы схемпорта Nhibernate и как мне назвать его, когда я решаю воссоздать базу данных?

Должен ли я оставить это в своем стартап -проекте (проект ASP.NET MVC)? Должен ли я создать отдельный консольный проект только для экспорта моей схемы?

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

Я использую Fluent nhibernate, если это имеет значение.

Это было полезно?

Решение

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

Другие советы

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

Лично я использую два теста (использование 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);
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top