NHibernate Fluent vs. Атрибуты

Я заинтересован в перемещении некоторых конфигураций/сопоставлений NHibernate в код, чтобы помочь с некоторыми проблемами обслуживания. Может ли кто-либо предоставлять какие-либо советы/плюсы/минусы/сравнения Fluent NHibernate vs. NHibernate.Mapping.Attributes?

У меня есть опыт работы с аннотациями Java Hibernate, которые мне понравились, но мне любопытно, являются ли атрибуты NHibernate сопоставимыми и будет ли Fluent предоставлять какие-либо существенные недостатки/недостатки, которые следует учитывать.

Ответы

Ответ 1

Я не думаю, что кто-то делал какие-либо прямые сравнения. Это сводится к тому, насколько вам комфортно украшать ваши объекты атрибутами. Fluent NHibernate нацелен на то, чтобы позволить вам использовать NHibernate с полностью незагрязненной моделью, в то время как атрибуты требуют, чтобы вы изменили свои сущности; это опасение, связанное с постоянством, которое протекает в вашем домене. Является ли это проблемой для вас, следует ли вам выбирать атрибуты или нет.

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

Ответ 2

NHibernate теперь поддерживает JPA (называемый NPersistence или NPA для платформы .NET), включая аннотации JPA. Это лучший способ сопоставить ваши сущности и переносить свой код для других поставщиков. проверьте его:

www.npersistence.com