关于LinQ的加入

时间:2015-03-23 05:03:31

标签: c# linq

我有一个列表集合和一个Datatable,我正在尝试通过linq进行连接,但是我收到了以下错误。

  

join子句中某个表达式的类型不正确。   调用join

时类型推断失败

我的LinQ查询是:

var linqresultset = from e in emp_data 
join d in dt on e.DeptId equals d.ID orderby e.Id 
select new { Id = e.Id, Name = e.Name +" - "+ d.Department };

systax有什么问题?

1 个答案:

答案 0 :(得分:2)

DataTable没有实现IEnumerable,所以你不能直接在LINQ查询中使用它,你需要使用AsEnumerable将它转换为IEnumerable类型: -

var linqresultset = from e in emp_data 
join d in dt.AsEnumerable() on e.DeptId equals d.Field<int>("ID") 
orderby e.Id 
select new { Id = e.Id, Name = e.Name +" - "+ d.Field<string>("Department ")};