NHibernate vs. Entity Framework 4.0

この質問は私に非常に頻繁に聞かれ、私は常に直接的な答えを避けようとしましたが、それでも彼らはそれについて私に頻繁に尋ねますので、私は単に答えなければならないと感じます。 一般に、私はNHibernateに傾倒しているので、この記事を読むときはこれを覚えておいてください。



EF 4.0は、以前のバージョンのEFに存在した多くの問題を修正します。 透過的な「遅延読み込み」POCOクラスコードのみなど。 EF 4.0はEF 1.0より明らかに優れています。



問題は、EFがまだ非常に若い製品であることです。 バージョン4で追加されたすべての変更は、表面にのみ影響しました。 EFおよびCode Onlyの POCOモデルに関する問題のいくつかについてはすでに書いたので、繰り返しません。 私が説明した問題から判断すると、主な難点は、コミュニティの経験とマイクロソフトの活動の間に壁があるということです。 これらのケースは両方とも、NHibernateおよびFluent NHibernateで発生した典型的な問題を示しています。 これらの問題はNHibernateで対処および解決されましたが、EFに表示されます。



しかし、私がレビューした問題を無視しても、NHibernateが成熟した製品であるという他の兆候があります。 Entity Framework Profilerマニュアルを書いたときにこれを理解しました。 EFでは単純にできないこともありますが、それはNHibernateの自然な部分です。

ポイントごとに違いのリストを作成しようとはしません。 NHibernateとEF 4.0の機能に大きな違いがある場合を見ていきます。 基本的に、これらはフレームワークが行うことを微調整する能力の違いです。 通常、これらは、OR / Mの使用を損なうことなく、システムのパフォーマンスを向上させる設定です。



だからここに短いリストがあります:

ただし、一方で:



翻訳者から:私自身は現在、小規模なASP.NET MVC2 + Entity Framework 1.0プロジェクトに参加しています。 他のOR / Mでは動作しなかったため、NHibernateとNHibernateを比較するのは興味深いものになりました。 エンティティフレームワーク。 OR / M(またはその他)の両方と密接に協力した人々の意見は興味深いです-Mr. Oren Einiはすべてを正しく書きましたか? 追加するものはありますか?



All Articles