Bilmiyorum sorununu çözdün mü ama bilmeyenler için veya öğrenmek isteyenler için yazayım.
Recursive kullanarak istediğin şeyi yapabilirsin. Kod tarafında değil ama sql tarafında yaparsan daha hızlı sonuç alırsın. Aşağıdaki sorgu maksimum 4 seviyede sonuç verir. Maksimum kaçıncı seviyeye kadar alt kategorin varsa ona göre değiştir.
Bu sorgu sana Masaüstü kategorisine girdiğinde alt kategorilerini listeler. Gelen listeye göre IN kullanarak ürünleri listeleyebilirsin.
WITH parent(pid, pname)
AS
(
SELECT id, name FROM category
WHERE id=1
UNION ALL
SELECT PA.id, name
FROM category C JOIN parent as PA
ON C.MainCatID= PA.pid
)
SELECT * FROM parent OPTION(MAXRECURSION 4)
Sorunum çözüldü teşekkür ederim