大規模な既存システムに nHibernate マッピングを実装しようとしています。2 つのオブジェクト間の関係をマッピングしようとしています。1 つのオブジェクトは、システム全体のさまざまなオブジェクトに関連する「添付ファイル」です。したがって、データベースには、それ自体を関連付けるために使用する2つの列があります
アイテムタイプ
アイテム ID
添付ファイルのある製品がある場合、ProductId = ItemId と ItemType は定義済みの値、たとえば '0001' になります。ユーザー オブジェクトが '0002' の場合、Order は '0003' など、他の ItemTypes の場合もあります。
これを nhibernate でマップする必要があります。したがって、製品オブジェクトに添付ファイルのコレクションが必要ですが、これは ItemId と ItemType の両方にマッピングすることを意味します
必要だったのが ItemId マッピングだけだった場合は、それを行うことができます
HasMany(x => x.Attachments).KeyColumn("ProductId");
しかし、代わりに、添付テーブルの KeyColumn "ProductId" と ItemType が "0001" に等しい場所にマップする必要があります
どうすればこれを行うことができますか...?
構造 製品表
[製品]
製品番号
名前
説明
アタッチメント表
【添付】
添付URL
アイテム ID
アイテムタイプ