/ / Pokiaľ ide o spojenie v LinQ - c #, linq

Pokiaľ ide o pripojenie LinQ - c #, linq

Mám zoznam kolekcií a Datatable, na ktorom sa snažím pripojiť cez linq, ale dostávam nižšie uvedenú chybu.

Typ jedného z výrazov v klauzule join je nesprávny. Inferencia typu zlyhala vo volaní na join

My LinQ Query je:

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 };

Čo je nesprávne v systaxe?

odpovede:

2 pre odpoveď č. 1

DataTable neimplementuje IEnumerable, takže ho nemôžete použiť priamo v LINQ dotaze, musíte ho previesť na typ IEnumerable pomocou AsEnumerable ako toto:-

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 ")};