私はC#3.5を使用していますIList<MyItemLinkProperty>
。ここでMyItemLinkProperty
、はアイテムとそのプロパティ(1つまたは複数)の間のリンクを表します。ItemId
、、がPropertyId
ありPropertyValue
ます。このリストItemId
では、アイテムに多くのプロパティ、色、サイズなどが含まれる可能性があるため、何度も発生する可能性があります(この種のリストがあり、アイテムエンティティにマップされていないのは、パフォーマンスに関連する問題です)。
ItemID PropId PropValue
itemProperty1 = { 1001, 1, 'Red' }
itemProperty2 = { 1001, 2, 'Small' }
itemProperty3 = { 1002, 1, 'Red' }
itemProperty4 = { 1002, 3, 'Medium' }
itemProperty5 = { 1003, 4, 'Green' }
itemProperty6 = { 1003, 2, 'Small' }
次に、プロパティAとプロパティBを持つすべてのアイテムを検索する必要があります。たとえば、「red」と「small」です。ItemID
これにより、これらの両方のプロパティを持つ1001が得られるはずです。
擬似コードでは、「プロパティIDが1または2で、アイテムIDが同じアイテムを教えてください」と思っています。次に、これらの両方のプロパティを持つアイテムを取得しました。
linqクエリでそれができると思います。しかし、これが機能するようになっておらず、行き詰まっています。たぶん私はここで私の心をブロックし、それを考えて複雑にしすぎています...
これに対する最善の解決策のヒントはありますか?