31

私は ORM ツールの Entity Framework と LLBL のバックグラウンドを持っています。

NHibernate をベースにした新しいシステムの構築を依頼されました。私はそうしたことがないので、新鮮な目でそれに来ています。

Fluent NHibernate でのマッピングと NHibernate での「コードによるマッピング」の違いは何ですか? 好みはありますか?

4

3 に答える 3

22

流暢なNH

Fluent NHibernate は、NHibernate の標準 XML マッピング ファイルに代わるものを提供します。XML ドキュメントを記述するのではなく、厳密に型指定された C# コードでマッピングを記述します。これにより、リファクタリングが容易になり、可読性が向上し、コードがより簡潔になります。

対。

コードによる NH の新しいマッピング

これは、ConfORM ライブラリに基づいた、3.2 以降の NHibernate の不可欠な部分である XML レス マッピング ソリューションです。その API は、XML の命名と構造に準拠しようとします。マッピング メソッドの構築方法には、強力な規則があります。その名前は、ほとんどの場合、XML 要素の名前と同じです。

于 2012-11-20T19:33:54.957 に答える
12

好みのものもあれば、既存のコードベースのものもあります。NHibernate に非 XML マッピング オプションが組み込まれていない時期がありました。これを修正するための解決策がいくつかありました。たとえば、confORM、Fluent NHibernate、およびおそらく私が気付いていないその他のものです。

3.2 の時点で (おそらく 3.0)、NHibernate には "Mapping by Code" があると思います。Fluent NHibernate よりも優れている点は、追加のライブラリが必要ないことと、NHibernate と同じチームによってサポートされていることです。一方、Fluent NHibernate はもう少し成熟しており (私が聞いたところによると)、より広範なマッピング関数セットをサポートできます。

「既存のコードベース」についても触れました。明らかに、すでに Fluent NHibernate でマップされているプロジェクトがある場合は、それを続行するのが最善です。新しく始めている場合は、ビルトインの「Mapping By Code」を試してみる価値があるかもしれません。

于 2012-11-20T19:35:48.040 に答える