如何将以下代码返回到列表
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;
}
答案 0 :(得分:2)
您的方法的返回类型是tbl_Employee
的列表。因此,请确保您的LINQ表达式也返回相同类型的数据。
public List<tbl_Employee> getProgramNames()
{
return db.tbl_Employee.Where(c => c.EmpName == "sam").ToList();
}
假设db.tbl_Employee
类型为DbSet<tbl_Employee>
。
另外,我建议您按照PascalCasing进行C#方法。所以我会将getProgramNames
重命名为GetProgramNames
:)
编辑:根据评论中的问题
如何指定列名。我想只检索两个数据 列。
如果只需要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
实体类具有Id
类型的Int
属性