Linq多层次

时间:2017-11-25 14:14:15

标签: c# linq

我有三个表作为父/子/孙子加入。

我正在尝试获取一个Linq查询,该查询显示父表中的记录和孙表的集​​合。我不想显示子表,因为它只是一个包含三个ID的jonction表。

我到目前为止所做的是

data = {
    result: [
      {
            id: '001',
            name: 'Caio B'
            country: 'brazil',
        },
          {
            id: '002',
            name: 'Gustavo H',
            country: 'brazil',
        },
    ],
}

它有点工作。我对结果不满意,因为父元素(角色中的r)包含一个子元素集合(RolesResources),每个元素都包含一个资源条目。

我真正需要的是角色中的r有一组资源,跳过中间表。

这甚至可能吗?如果是的话,我错过了什么?

1 个答案:

答案 0 :(得分:1)

是的,完全可以使用匿名对象或帮助程序类。假设您需要在当前方法之外使用此方法,我将在课堂上进行演示。

public class RolesViewModel
{
    public Role Role { get; set; }
    public List<Resource> Resources { get; set; }
}

var list = ctx.Roles
    .Select(r => new RolesViewModel
    {
        Role = r,
        Resources = r.RolesResources.Select(rr => rr.Resources).ToList()
    })
    .ToList();