モデルには、多対多の関係を持つ2つのエンティティが含まれます。CatalogueItems and Keywords。エンティティフレームワークの多対多選択
は、2つの変数が定義されていると仮定します。
ObjectQuery<Keyword> KW;
ObjectQuery<CatalogueItem> CI;
KWキーワードのセットを選択するためのいくつかのクエリが含まれています。 KWの少なくとも1つのキーワードを持つすべてのCatalogueItemを選択するCIを取得する必要があります。
重要なこと:事前計算や列挙は必要ありません。キーワードの列挙には多くの時間がかかりますが、UIは表示されているライブCatalogueItemsに基づいています。完璧なことはCIの実行準備が整っていることです。
ありがとうございました。 これは動作しますが、遅すぎます。キーワードを取得するための1回のクエリには数秒かかります。 このクエリは実行されています...わかりません。私は10分間待っていて、それを止めた。すべてのCatalogueItemに対してKWを再計算するように見えます。 また、CatalogueItemsは結果で繰り返されます。 Distinct()はまったく助けません - アプリはちょうどハングし、妥当な時間内に結果を返しません。 私はもっと最適化された方法があるべきだと思います。 – Sergey40a
私の編集をご覧ください。 – Svarog
クエリは「keyword.Value like @ 0 or keyword.Value @ 1 ...」のようになります。データベースには、多対多関係を作成するための遷移テーブル(ItemID、KeywordID)があります。インデックスはOKです。 おそらくSPはこれを実装するより良い方法です... Pity – Sergey40a