こんにちは、私のデータベース構造は次のようなものです
Id ParentId MenuName URL
1 0 Home google.com
2 1 Privacy yahoo.com
3 0 About Us gmail.com
4 0 Contact US www.contactus.com
5 2 Disclaimer www.disclaimer.com
6 4 FeedBack www.feedback.com
7 3 What we do www.whatwedo.com
8 3 How we do www.howWeDo.com
parentid に基づいてデータを取得したいと思います。主な問題は、データが N レベルの深さになる可能性があることです。C# または LINQ でのソリューションが必要
ありがとう
これまでに試した:
public string getMenuItems(int parentId)
{
using (dynamicMenuEntities context = new dynamicMenuEntities())
{
var menuObj = from r in context.Menus
where r.ParentId == parentId
select new { r.MenuName, r.URL, r.Id };
foreach (var obj in menuObj)
{
sbMenu.Append("<li><a target=\"_blank\" href='" + Page.ResolveUrl(obj.URL) + "'>" + obj.MenuName + "</a></li>");
int childCount = context.Menus.Count(ch => ch.ParentId == obj.Id);
if (childCount > 0)
{
return getMenuItems(obj.Id);
}
}
return sbMenu.ToString();
}