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