Использование NHibernate с Codesmith для генерации ORM

StackOverflow https://stackoverflow.com/questions/679895

  •  22-08-2019
  •  | 
  •  

Вопрос

Только начал изучать NHiberate.Писать правильные файлы кажется довольно утомительным hbm.xml конфигурационные файлы для каждой таблицы базы данных.

Вопрос в том, может ли NHibernate считывать таблицы и автоматически извлекать связи и необходимый конфигурационный файл, а также классы сопоставления базы данных для вас?Похоже, что программисту все еще предстоит проделать большую работу на начальном этапе.Затем я наткнулся на Codesmith, у которого есть шаблоны для NHiberate?Заполняет ли это пробел?

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

Решение

Вы можете использовать шаблоны кода, но это все равно создает неудобства, ИМХО.Лучший способ - это использовать Свободно владеет NHibernate.У них есть новая функция автоматического сопоставления, которая использует конфигурацию по соглашению.Никаких файлов сопоставления, он просто предполагает, что вы используете похожие имена, и может определять правила преобразования имени объекта в имя таблицы.

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

Генерация кода может очень хорошо восполнить этот пробел, я начал использовать CodeSmith, но затем они сделали это платной статьей, поэтому я перешел на Мое поколение.Мой подход заключается в том, чтобы сначала атаковать базу данных, кодировать файлы сопоставления gen и классы gen, если они еще не существуют.Это позволяет сделать что-то действительно быстро, отлично подходит для создания прототипа и тестовых данных.

Файлы сопоставления, классы и база данных часто затем изменяются вручную.В некоторых случаях я пытался заставить генерацию кода работать как часть CI - но оказалось, что это трудно сделать, если вы не дисциплинированно относитесь к тому, где вы вносите изменения в код вручную.Частичные классы помогли, но все еще проблема с размещением всей команды на одной странице, никому не нравится, когда их код перезаписывается инструментом, даже если затем вы можете выполнить откат и объединить.

Я работаю на CodeSmith...Пожалуйста, имейте в виду, что MyGeneration не обновлялся целую вечность, что означает, что ему также не хватает поддержки.CodeSmith полностью поддерживает свои продукты и шаблоны.Это означает, что любые ошибки шаблона также будут исправлены и проверены Codesmith.

Спасибо

-Блейк Нимийски

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top