14

いくつかのメンテナンスの問題を解決するためにNHibernateの設定/マッピングをコードに移動することに興味があります。誰でもFluent NHibernateとNHibernate.Mapping.Attributesのアドバイス/プロ/コン/比較を提供できますか?NHibernateの流暢さと属性

私は好きなJava Hibernateアノテーションにいくつかの経験がありますが、NHibernateの属性が匹敵しているかどうか、またFluentが考慮する必要がある主要な面/欠点を提供しているかどうか不思議です。

答えて

19

私は誰も完全な比較を行ったとは思わない。それはあなたのエンティティを属性で飾ることがどれほど快適であるかにまで下がります。流暢なNHibernateは完全に汚染されていないモデルでNHibernateを使うことを目的としていますが、属性にはエンティティを変更する必要があります。これはあなたのドメインに漏れる永続性の懸念です。それがあなたにとって問題であるかどうかは、あなたが属性を選ぶべきかどうかです。

流暢NHibernateは、マッピングだけでなく、テーブルにもう少し多くのものを投げます。ドメインを自動的にマッピングできるようにするauto mappingsもあります。 conventions supportがあり、デザインの繰り返しを大幅に減らすことができます。私はすべてを繰り返すことはしませんが、Fluent NHibernate wikiで詳しく読むことができます。

+1

を私が汚染されていないモデルを維持するという考えに同意します。これが私がFluent NHibernateを使う最大の理由ですが、Brownfieldのプロジェクトでほとんど使っています。私はGreenfieldプロジェクトでそれを使用し始めました。そして、コンベンションサポートを使った自動入力も非常にうまくいきます。正直言って、私はこのような流暢な構成を一種のアスペクト指向プログラミングと考える傾向があり、AOPと同じ利点があります。 – Rich

0

NHibernateは、JPAアノテーションを含むJPA(.NETプラットフォームではNPersistenceまたはNPAと呼ばれる)をサポートするようになりました。 エンティティをマッピングして、他のベンダーのコードも移植可能にするのが最善の方法です。それをチェックアウト :

www.npersistence.com