如何选择自引用表的所有级别作为视图模型。如果最高级别是2或3,那么我可以通过多次调用Select
来实现,但我有4-5级菜单,我认为应该有更好的解决方案来做到这一点,并选择所有级别。从自引用表中选择并转换为视图模型
这是我的视图模型:
public class MenuViewModel
{
public MenuViewModel()
{
Childs = new HashSet<MenuViewModel>();
}
public int Id{ get; set; }
public string Title { get; set; }
public string Url { get; set; }
public ICollection<MenuViewModel> Childs { get; set; }
}
,这是我的菜单类:
public class Menu
{
public Menu()
{
Childs = new HashSet<Menu>();
}
public int Id{ get; set; }
public string Title { get; set; }
public string Url { get; set; }
public string Description { get; se; }
public byte[] Icon { get; set; }
public int Order { get; set; }
public ICollection<Menu> Childs { get; set; }
}
var viewModel = _dataContext.Menus
.Select(x => new MenuViewModel
{
Id = x.Id,
Title = x.Title,
Child = ???
}
.ToList();
你的'菜单'是怎么样的? –
@HariPrasad其几乎像我的viewmodel –
'菜单'包含子集合?你能举一个例子说明它是如何自引用父母/孩子的吗? –