我有以下用于 menuItem 表的数据库设计
Id PId MenuLink
--- --- ---------
1 Null Home.aspx
2 Null Admin.aspx
3 Null Logout.aspx
4 2 Manage Content.aspx
5 2 Manage Users.aspx
6 2 Manage Storage.aspx
7 4 Review Content.aspx
8 4 Add New Content.aspx
9 8 Articles.aspx
10 8 News.aspx
它是 n 级分层菜单,根项目有 Pid Nil,其余项目有其父 Id。现在我有这个表的业务对象。
public class myMenuItem
{
public int Id {get; set;}
public int PId {get; set;}
public string MenuLink {get; set;}
}
我想以这样一种方式填充我的业务对象,即每个 MenuItem BO 将包含父项及其所有子项(n 级)
目前,我首先获取 Root 项目,然后使用我单独创建的单独业务对象(复制)逐个填充每个级别。有没有更好的方法来完成这项任务(因为我的桌子是单人的)?
public class myMenuItem
{
public int Id {get; set;}
public int PId {get; set;}
public string MenuLink {get; set;}
public List<level1> Level1Items {get ; set;}
public List<level2> Level2Items {get ; set;}
}
// Duplicate class
public class level1
{
public int Id {get; set;}
public int PId {get; set;}
public string MenuLink {get; set;}
// Manually create another list
}