Подтвердить что ты не робот

Разница между FluentNHibernate и NHibernate "Сопоставление по коду"

Я прихожу из фреймворка Entity Framework и LLBL для своих инструментов ORM.

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

В чем разница между отображением с Fluent NHibernate и "Сопоставление по коду" в NHibernate? Есть ли предпочтение?

4b9b3361

Ответ 1

Fluent NH

Свободный NHibernate предлагает альтернативу стандарту NHibernate XML отображение файлов. Вместо написания XML-документов вы пишете сопоставления в строго типизированном коде С#. Это позволяет упростить рефакторинг, улучшить читаемость и более сжатый код.

против.

NH новое сопоставление по коду

Это решение преобразования XML-less является неотъемлемой частью NHibernate с 3.2, на основе библиотеки ConfORM. Его API пытается соответствуют именам и структуре XML. Там сильная конвенция в как построены методы сопоставления. Его имена почти всегда равны к именам XML-элементов.

Ответ 2

Некоторые из них предпочтительны, некоторые из них являются существующей кодовой базой. Было время, когда в NHibernate не было встроенных опций, не связанных с XML. Там было несколько решений, чтобы исправить это - например, confORM, Fluent NHibernate и другие, о которых я, вероятно, не знаю.

Начиная с 3.2, я верю (возможно, 3.0) NHibernate теперь имеет "Сопоставление по коду". Преимущество этого в Fluent NHibernate заключается в том, что он не требует дополнительной библиотеки и поддерживается той же командой, что и NHibernate. С другой стороны, Fluent NHibernate немного более зрелый (из того, что я слышал) и может поддерживать более широкий набор функций отображения.

Я также упомянул "существующую кодовую базу". Очевидно, что если у вас есть проект, который уже сопоставлен с Fluent NHibernate, было бы лучше продолжить его. Если вы начинаете новый, возможно, стоит попробовать использовать встроенный "Сопоставление по коду"

Ответ 3

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

http://notherdev.blogspot.de/2012/01/nhibernates-mapping-by-code-first.html