IQueryable List<DTO>转换



我需要用TeamsDTO列表填充UserDTO的IQueryable,而不需要foreach循环或具体化数据。

我有以下课程:

public class User
{
public int Id {get;set;}
public string Name {get;set;}
public List<Team> Teams {get;set;}
}
public class Team
{
public int Id {get;set;}
public string Teamname {get;set;}
public string Description {get;set;}
}

以及以下DTO:

public class UserDTO
{
public int Id {get;set;}
public List<TeamDTO> TeamsDTOList{get;set;}
}
public class TeamDTO
{
public int Id {get;set;}
public string Teamname {get;set;}
}

到目前为止的代码:

public static IQueryable<UserDTO> GetQueryableUserDTO(IQueryable<User> query)
{
var retQueryable = Enumerable.Empty<UserDTO>().AsQueryable();
try
{
retQueryable = query.AsEnumerable()
.Select(k => new UserDTO
{
Id = k.Id,
TeamsDTOList= new List<TeamDTO>()
{
//Can't figure out this part
}
});
}
catch (Exception ex)
{
BaseManager.Write2Log(ex);
}
return retQueryable;
}

感谢您提前提供的帮助。

第页。S.:类/代码当然是一个简化的例子。

这个怎么样:

retQueryable = query.AsEnumerable().Select(k => new UserDTO()
{
Id = k.Id,
TeamsDTOList = k.Teams.Select(t => new TeamDTO(){ Id = t.Id, Teamname = t.Teamname}).ToList()
});

最新更新