これがやや古い質問であることに気付く前に、私はかなり長い答えを入力しました。しかたがない。それはまだ非常に関連性があります。
リストを.NETの世界でORMに最適な2つの候補に絞り込みました。どちらかについての経験は限られていますが、両方の長所と短所について詳しく読んでいます。それらは実際には、さまざまな方法で多少異なるニーズに対応します。
今後のLLBLGenPro3.0で、FransBoumaはNHibernateマッピングを生成する機能の追加について話しました。したがって、それは必ずしもどちらかまたは両方の決定ではありません。
(「データベースファースト」デザインではなく)「クラスファースト」デザインを実行したい場合は、NHibernateが最適であり、現時点で唯一のオプションです(LLBLGenProもEntityFrameworkもこのモードをサポートしていませんが、EntityFrameworkは次のバージョンでのサポートを改善します)。
NHibernateとLLBLGenProはどちらも、変更できず、使用しなければならないレガシーデータベースとうまく連携するために一生懸命働いています。それが彼らの共通の強みです。どちらもLinqと連携します。LLBLGen Proはこの点ではるかに優れていますが、どちらもある程度のグラフィカルモデリングをサポートしています(NHibernate用のActiveWriterはVisual StudioのLinqToSqlデザイナーのように感じますが、実際には機能が豊富ではありません)。
LLBLGen Proははるかに強力なコード生成機能を備えていますが、コード生成が多すぎると、テスト容易性と保守性が損なわれる可能性があります(1つの小さな調整により、大量のコードを再テストする必要が生じる可能性があります)。
NHibernateは、クラス継承のようなかなり複雑なオブジェクト/リレーショナルマッピングシナリオの処理を支援したいと考えていますが、LLBLGen Proは、データベースをデータレイヤーおよびビジネスオブジェクトとして非常に迅速に公開しているだけです。
LLBLGen Proを購入して時間があれば、両方を試して、どちらがニーズに合っているかを確認します。どちらの場合でも、両方のORMを学習することは、履歴書に役立ちます。
ですから、結局のところ、状況に応じたものだと思います。NHibernateのコストと深刻な欠陥の欠如は、ほとんどの状況でかなり説得力のあるケースになります。