次の NHibernate マッピングを検討し、コメント付きのプロパティに注目してください。これらは、で指定されたkey
および列と同じ列です。コメントを削除すると (したがって、プロパティの列と列が含まれます)、「コレクションのマッピングで列が繰り返されます」という例外が発生します。index
map
TypeOfPart
UnitId
<map name="Parts" table="ActiveUnitParts" lazy="false">
<key column="UnitId" />
<index column="TypeOfPart" type="integer"/>
<composite-element class="ActiveUnitPart">
<property name="Id" />
<property name="CreationDate" />
<property name="PartInfo"/>
<property name="Remarks"/>
<!-- <property name="TypeOfPart" /> -->
<!-- <property name="UnitId" /> -->
</composite-element>
</map>
コードで必要なのはDictinonary<TypeOfpart, ActiveUnitPart>
. しかし、私が抱えている問題は、プロパティUnitId
との値が のインスタンスにTypeOfPart
設定されていないことです。ActiveUnitPart
Dictinonary<TypeOfpart, ActiveUnitPart>
はい、このユニットの関連パーツのリストが読み込まれます。はい、辞書のキーは右のパーツに関連付けられています。しかし、プロパティ自体を参照しTypeOfPart
てUnitId
プロパティを埋めることができない理由がわかりません。ActiveUnitPart
これを解決または回避するにはどうすればよいですか?
これが必要な理由:ActiveUnitPart
関連するUnit
( UnitId
)を参照せずに s を操作できる必要がある
編集 1:Parts
のプロパティの
セッターを傍受し、コードで値を設定するために Unit
反復できることはわかっていますが、可能であれば、よりエレガントな方法でそれを実行したいと考えています。Dictinonary<TypeOfpart, ActiveUnitPart>
hack
NHibernate