如何返回Linq表达式作为一个列表

本文关键字:一个 列表 Linq 何返回 返回 表达式 | 更新日期: 2023-09-27 18:11:58

如何将下面的代码返回到List

public List<tbl_Employee> getProgramNames()
{
    IQueryable<tbl_CentralLookup> data = db.tbl_Employee.Where(c => c.EmpName == "sam").Select(o => new { o.LookupId, o.EmpName });       
    return data;
}

如何返回Linq表达式作为一个列表

你的方法的返回类型是List of tbl_Employee。因此,请确保您的LINQ表达式也返回相同类型的数据。

public List<tbl_Employee> getProgramNames()
{
    return  db.tbl_Employee.Where(c => c.EmpName == "sam").ToList();
}

假设db.tbl_EmployeeDbSet<tbl_Employee>

我还建议您遵循c#方法的pascal套管。所以我将getProgramNames重命名为GetProgramNames:)

EDIT: 根据评论中的问题

如何指定列名。我只想检索两个的数据列。

如果您只想要2列,请为该数据结构创建一个DTO,并使用它在LINQ表达式中投影数据。

public class EmployeeBasicInfo
{
  public int Id { set;get;}
  public string FirstName { set;get;}
}

现在更改您的方法以返回该DTO的集合而不是实体。

public List<EmployeeBasicInfo> getProgramNames()
{
    return  db.tbl_Employee.Where(c => c.EmpName == "sam")
              .Select(x=> new EmployeeBasicInfo { Id=x.Id, FirstName = x.EmpName })
              .ToList();
}

假设你的tbl_Employee实体类有一个类型为IntId属性