4

NHibernateは初めてです。私はいくつかの多対1および多対多の関連付けに<set...>マッピングを使用しています。これらは、実際にはHashSet <T>によって実装される、タイプICollection<T>のプロパティとして公開されます。

私の質問は、関連するタイプのEqualsとGetHashCodeをオーバーライドして、タイプのデータベースIDと一致させる必要があるかどうかです(実際には、Idプロパティが等しいときにオブジェクトが等しくなるようにします)。それとも、NHibernateは私のためにこれを何らかの方法で処理しますか?

これを行うと、一度に多対多のコレクションに複数の値を挿入したい場合に問題が発生します。これは、新しい要素のId​​がGuid.Emptyである可能性があるためです。したがって、同じアイテムと見なされます。

4

2 に答える 2

2

必ずしもその問題に遭遇する必要はありませんAbstractEntity。uNhAddIns(とを実装EqualsしますGetHashCode)を見てください。

于 2010-05-04T13:28:51.950 に答える
1

2つの異なるNhibernateセッションからオブジェクトをロードする場合は、Equals/GetHashCodeをオーバーライドします。Nhibernateのマニュアルを確認してください。

于 2013-03-13T20:14:45.283 に答える