Использование NHibernate с Codesmith для генерации ORM
-
22-08-2019 - |
Вопрос
Только начал изучать NHiberate.Писать правильные файлы кажется довольно утомительным hbm.xml конфигурационные файлы для каждой таблицы базы данных.
Вопрос в том, может ли NHibernate считывать таблицы и автоматически извлекать связи и необходимый конфигурационный файл, а также классы сопоставления базы данных для вас?Похоже, что программисту все еще предстоит проделать большую работу на начальном этапе.Затем я наткнулся на Codesmith, у которого есть шаблоны для NHiberate?Заполняет ли это пробел?
Решение
Вы можете использовать шаблоны кода, но это все равно создает неудобства, ИМХО.Лучший способ - это использовать Свободно владеет NHibernate.У них есть новая функция автоматического сопоставления, которая использует конфигурацию по соглашению.Никаких файлов сопоставления, он просто предполагает, что вы используете похожие имена, и может определять правила преобразования имени объекта в имя таблицы.
Другие советы
Генерация кода может очень хорошо восполнить этот пробел, я начал использовать CodeSmith, но затем они сделали это платной статьей, поэтому я перешел на Мое поколение.Мой подход заключается в том, чтобы сначала атаковать базу данных, кодировать файлы сопоставления gen и классы gen, если они еще не существуют.Это позволяет сделать что-то действительно быстро, отлично подходит для создания прототипа и тестовых данных.
Файлы сопоставления, классы и база данных часто затем изменяются вручную.В некоторых случаях я пытался заставить генерацию кода работать как часть CI - но оказалось, что это трудно сделать, если вы не дисциплинированно относитесь к тому, где вы вносите изменения в код вручную.Частичные классы помогли, но все еще проблема с размещением всей команды на одной странице, никому не нравится, когда их код перезаписывается инструментом, даже если затем вы можете выполнить откат и объединить.
Я работаю на CodeSmith...Пожалуйста, имейте в виду, что MyGeneration не обновлялся целую вечность, что означает, что ему также не хватает поддержки.CodeSmith полностью поддерживает свои продукты и шаблоны.Это означает, что любые ошибки шаблона также будут исправлены и проверены Codesmith.
Спасибо
-Блейк Нимийски