NHとFNHを使用してマッピングを生成するプロジェクトがいくつかあります(一部のFluentと一部の自動マッピング)。私が必要とするいくつかのバグと不足している機能がまだありますが、NHibernateに統合されたコードによるマッピングのためにFNHが死ぬ可能性があるようです。
質問:FNHに貢献するか、マッピングをコードによるマッピングまたはconfORMに移行し、そこで問題を修正/機能を実装しますか?
NHとFNHを使用してマッピングを生成するプロジェクトがいくつかあります(一部のFluentと一部の自動マッピング)。私が必要とするいくつかのバグと不足している機能がまだありますが、NHibernateに統合されたコードによるマッピングのためにFNHが死ぬ可能性があるようです。
質問:FNHに貢献するか、マッピングをコードによるマッピングまたはconfORMに移行し、そこで問題を修正/機能を実装しますか?
私たちのオフィスでは、NHibernate を 3 年間使用しています。Fluent Nhibernate への移行を検討していましたが、まだ移行していません。hbm.xml ファイルを使用することは、依然としてデバッグ/変更が最も簡単でした。これらの xml ファイルの 2 つの一般的な問題は、sessionfactory の作成中にすべてが検証され、リファクタリング セーフではないことです。
バグが原因で、NHibernate の新しいリリース (NHib 2.1.2GA を使用していた) を更新する必要があり、3.2GA を実装したときに、おしゃべりなマッピング (コードによるマッピング) を使用する機能も渡されました。別のプロジェクト (Fluent) への依存関係がなく、コードによるマッピングが壊れていると NHibernate が出荷されないという事実から、Fluent ではなく Loquacious を使用することにしました。
ただし、Loquacious マッピングも完全ではないことに注意してください。コードですべてをマッピングしているときに、property-ref のような基本的なものが常に実装されているとは限らないことがわかりました。したがって、出荷されたとしても、100% 完成したわけではありません。これは衝撃的なものではありませんが、バグがあります。はい。本当。;-)
(報告された) バグの詳細については、NHibernate バグ データベースを確認してください: https://nhibernate.jira.com/browse/NH
お役に立てれば。よろしく、テッド
@TedOnTheNetへのthx私は引き続きFNHを使用し、貢献します。コードによるマッピングが一部の地域でFNHに到達するまでにはしばらく時間がかかるためです
.Database(SQLiteConfiguration.Standard.InMemory())
よりも把握するのはまだ簡単です
.DataBaseIntegration(db =>
{
db.ConnectionString = ???;
db.Dialect<SQLiteDialect>();
db.Driver<???>();
});
およびいくつかの機能:
更新: hbm.xml (および FluentMapping) の一部の機能は、コードによるマッピングではまったく使用できません。
私が知る限り、NH 3.2 には、FNH の Automapping にリモートで相当するものはありません。(私にとって、それは契約違反になるでしょう)。
編集
FNH Automapper は、継承、1 対多の関係、自己参照など、オブジェクト モデルの一般的なパターンのほとんどを、プログラマーの助けを必要とせずに処理できます。これまでのところ、純粋な NH はこのレベルの自動化を達成していません。
また、James Gregory は、少なくとも短期的には FNH の開発を継続すると公言しています。(数か月前に FNH Google グループでこれを見たと思いますが、正確な場所はわかりません)。