بناء وتقديم شجرة الفئة الهرمية اللانهائي من جدول الفئة المرجعية الذاتية
-
26-09-2019 - |
سؤال
انا املك Categories
الجدول الذي يكون فيه كل فئة ParentId
يمكن أن تشير إلى أي فئة أخرى CategoryId
أنني أريد عرض قائمة HTML متعددة المستويات ، مثل ذلك:
<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
.
تأكد من إبطال ذاكرة التخزين المؤقت كلما تم إجراء تغييرات على شجرة الفئة.
إذا كان الاستعلام ينفذ الكثير من الاستعلامات (واحد لكل مستوى شجرة) ، ففكر في الحصول على محتويات جدول الفئة كقائمة مسطحة ثم استخدام LINQ إلى كائنات لتسجيلها في فئة نموذج العرض.