从两个不同的表中获取具有属性的类的列表

本文关键字:获取 属性 列表 两个 | 更新日期: 2023-09-27 18:19:04

我有两个不同的实体,

class Department
{
    int DepID;
    string DepName;
}
class Emp
{
    int Empid;
    string Empname;
    int Empage;
    int EmpDep; //id of department
}

,我正在使用Linq中的连接获得具有DepName的Emp列表,我想直接将此值分配给datagrid。

所以我的问题是如何将数据转换成列表,以及这个列表的对象类型是什么。

谢谢

从两个不同的表中获取具有属性的类的列表

生成的类型将是一个匿名类型。我不认为您可以直接将结果List转换为特定类型的List,除非您明确定义了该类型。

因此,如果您将.ToList()放在查询的末尾,您将获得var类型对象中匿名类型的列表。

为什么这里需要强类型?你可以将数据网格项目源设置为从LINQ

获取的列表

类似

employees.Join(departments, e => e.EmpDep, d => d.DepId,
    (e,d) => new EmpView { EmpName = e.EmpName, DepName = d.DepName }).ToList()

,我使用类型EmpView绑定到网格。(通过这种方式,您可以创建一个生成EmpViews的方法,以及另一个执行数据绑定和关注点分离的方法或组件)。