如何使用 Linq 应用嵌套选择

问题描述 投票:0回答:1

我正在使用嵌套选择,似乎我所做的不正确!

我正在尝试检索所有

Topics
项目。

public class Employee
{
   public int Id{ get; set; }  
   //....other fields....
   //......
   public IList<Topics> Interest { get; set; }     
}

public class Topics
{
   public int Id { get; set; }  ;
   public string Name { get; set; }  ;
   //other fields
}

employeeItems = (from _emp in employees
                   select new Employee
                   {
                      EmpId = _emp.mediaId,
                      EmpName = _emp.mediaType,
                      ......................
                      Interest = (from _emp1 in employees.Interest  //has few rows
                      select new Topic 
                      {
                          Id = _emp1.Topics[0].Id,   //.<int>("id"), <<<ERROR
                          Name = _emp1.Topics[0].Name //["name"] <<<ERROR
                      }).ToList()

               }).ToList();
        }
linq lambda
1个回答
1
投票
Interest = (from topic in _emp.Interest.SelectMany(i=>i.Topic)  //has few rows
                      select new Topic 
                      {
                          Id = topic.Id,   //.<int>("id"), <<<ERROR
                          Name = topic.Name //["name"] <<<ERROR
                      })

public class Employee
{
   public int Id{ get; set; }  
   //....other fields....
   //......
   public IEnumerable<Topics> Interest { get; set; }     
}

将该属性保留为

IEnumerable
并且不在查询中执行
.ToList()
。在我看来,你的数据结构是员工有多种兴趣,每个兴趣有多个主题,这就是我使用
SelectMany
的原因,但如果我的数据有误,你可以调整它。

© www.soinside.com 2019 - 2024. All rights reserved.