嗨,我的数据库结构就像
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();
}