2009-05-19 16 views
0

リストを含むディクショナリをマップしようとしています。リストを含むマッピング辞書

私はテーブルの次のセットがあります。

CREATE TABLE Item(id) 

CREATE TABLE Filter(id) 

CREATE TABLE FilterType(id) 

CREATE TABLE ItemFilter(
item REFERENCES Item(id), 
filter REFERENCES Filter(id), 
filterType REFERENCES FilterType(id) 
) 

を、私はこのマッピングをしたい:

class Item{ 
public IDictionary<long, IList<ItemFilter>> ItemFiltersByType; 
} 

longfilterTypeのIDです。

私はこのマッピングを使用していたが、そのが動作していない:

任意の助けをいただければ幸いです。P. TKS

答えて

1

私はあなたがしようとしているものを行うことができるとは思いませんここで行うこと。最も利用可能なマッピングパターンは、三項連想である。これは実際にあなたが持っているものですが、ユニークなインデックスはありません。 NHibernateは、単一キーから複数の値をサポートしていない生のIDictionaryインターフェイスのみをサポートしています。あなたがのfilterTypeのためのユニークなインデックス値だった場合は(名前から判断すると、あなたは正しくありません)、あなたが行うことができます:

<map name="ItemFiltersByType"> 
    <key column="Item_id" /> 
    <index-many-to-many class="FilterType" column="FilterType_id" /> 
    <many-to-many class="Filter" column="Filter_id" /> 
</map> 

が、私はこのケースで最適なソリューションをに操作を移動することだと思います

IEnumerable<Filter> GetItemFiltersByType(FilterType type); 
+0

Tks、私は検索と実験の数時間後に私が望んでいたことができないと思った。 Listへのマッピングを終了し、それをグループ化するためにLinqを使用しました(非常に小さな項目のセット)。 – Megacan

関連する問題