Куда мне поместить свой метод схемы схемпорта Nhibernate?
-
29-09-2019 - |
Вопрос
Куда мне поместить свой метод схемы схемпорта 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);
}