Итак, новичок NHibernate; пытаясь обернуть вокруг меня мозг.Может ли NHibernate проверить, была ли создана схема db?
Я рассматриваю, как обрабатывать развертывание, а затем встраивание надстроек в веб-приложение (для чего могут потребоваться их собственные классы персистентности).
Я думал, что использование развертывания будет работать очень хорошо, но мне было интересно, есть ли способ заставить NHibernate рассказать мне об общем, основанном на кодах способе, что экспорт схемы уже был выполнен или не. В принципе, я хочу сделать smething как в этом псевдокоде:
if(!_cfg.HasSchemaForType(typeof(MyType))
ExportSchema(typeof(MyType));
else
UpdateSchema(typeof(MyType));
, где две функции будут внутренне использовать SchemaExport
или SchemaUpdate
, соответственно.
EDIT: Ребята, я ценю ответ до сих пор, но они немного теряют точку. То, что я пытаюсь настроить, - это способ, которым приложение позволяет добавлять и удалять дополнения, которые могут потребовать изменений в db. Я не говорю о версии моего собственного кода или тому подобного (по крайней мере, не как его основная функция). Поэтому вопрос о том, когда я развертываю приложение, и о том, когда я добавляю или удаляю подключаемый модуль, - это меньше. Был ли ранее установлен этот плагин (следовательно, проверка типа псевдокода)? Если да, запустите обновление. Если нет, запустите экспорт. Имеют смысл?
Не пытайтесь решить проблему развертывания приложения. Я добавил некоторые дополнительные примечания, чтобы уточнить. Спасибо за ваш ответ! – Paul
Я не думаю, что он имеет в виду во время развертывания ... это должно быть во время выполнения или времени инициализации ... плагины должны будут отвечать за свои собственные зависимости. – Webjedi
Thanks; Я назвал ваш «ответом», поскольку он был самым полным. Я думаю, что отдельная забота о том, что треки, которые были развернуты плагинами, вероятно, лучший путь, который вы предлагаете в своей третьей пуле. – Paul