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

时间:2011-12-29 10:12:40

标签: c# linq list

我有两个不同的实体,

class Department
{
    int DepID;
    string DepName;
}

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

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

所以我的问题是如何将数据转换为列表以及该列表的对象类型。

由于

2 个答案:

答案 0 :(得分:2)

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

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

为什么你需要强类型?您可以将数据网格项源设置为等于从LINQ

获得的列表

答案 1 :(得分:1)

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

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