自己参照カテゴリテーブルから無限階層カテゴリツリーを構築し、レンダリング
-
26-09-2019 - |
質問
私は、各カテゴリは、私はそうのような、マルチレベルのHTMLリストとして表示することを、他のカテゴリのCategories
を参照することができParentId
を持っているCategoryId
テーブルを持っています
<ul class="tree">
<li>Parent Category
<ul>
<li>1st Child Category
<!-- more sub-categories -->
</li>
<li>2nd Child Category
<!-- more sub-categories -->
</li>
</ul>
</li>
</ul>
現在、私は再帰的に部分的なビューをレンダリングし、次のカテゴリの下に渡しています。それは素晴らしい作品が、私はビューでクエリを実行していますので、それは間違っています。
どのように私は木のオブジェクトにリストをレンダリングし、迅速な表示のために、私はすべてのリストを必要とするたびに、それをキャッシュすることができ、階層的なカテゴリ?
解決
自己参照であるビューモデルクラスを作成します。
移入それ適切なモデルクラス内(または多分あなたのDataContext
パーシャルクラスの)ビューで実行されたクエリを使用します。
ラップCache
でチェックし、格納結果この方法でクエリを行う方法。
を確認してください変更はカテゴリツリーに行われるたびにキャッシュを無効ます。
クエリは、クエリ(ツリーレベルにつき1)の多くを実行すると、、その後、フラットリストとしてカテゴリテーブルの内容を取得して、あなたのビューモデルクラスにそれを投影するオブジェクトにLINQを使用することを検討します。
所属していません StackOverflow