我有一些对象列表,这些对象被映射为父子关系。
所以父母有很多孩子,孙子和曾孙等等。
我的表格结构如下
UserId UserNme
1 Jack
2 William
3 asha
4 winston
ParentId ChildId
2 3
3 4
所以我想按以下分层方式列出用户:
->用户不作为孩子(父母/非父母)
---->儿童用户
-------->大孩子用户
----------->曾孙子女
我尝试了以下代码,但未完成:
public List<MarketingUserDto> GetChildAgents(List<MarketingUserDto> agents,List<MarketingUserDto> resultAgents)
{
if (agents.Count == 0)
{
var parentagents = _userRegistrationRepository.GetMany(x => ((x.IsParentAgent ?? false) == true && x.UserTypeId == (short)Enums.UserTypes.Agent) || (x.UserTypeId == (short)Enums.UserTypes.Super_Manager && (x.IsParentAgent ?? false) == false));
this.GetChildAgents(Mapper.Map<List<UserRegistration>, List<MarketingUserDto>>(parentagents.ToList()), resultAgents);
}
else
{
foreach (var agent in agents)
{
var childagents = _agentMappingRepository.GetMany(x => x.ParentId == agent.UserId, y => y.UserRegistration);
}
}
return resultAgents;
}
请问您如何实现此建议?
答案 0 :(得分:0)
如果您不想重新发明压扁轮,请查看MoreLinq的Lock
extension method。
如果抓住了NuGet package,您会得到它以及更多有用的LINQ扩展。