/ / Odnośnie złączeń w LinQ - c #, linq

Odnośnie złączeń w LinQ - c #, linq

Mam kolekcję list i Datatable, na którym próbuję zrobić join za pomocą linq, ale otrzymuję poniższy błąd.

Typ jednego z wyrażeń w klauzuli join jest niepoprawny. Wnioskowanie typu nie powiodło się w wywołaniu join

Moje zapytanie o LinQ to:

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

Co jest nie tak w systax?

Odpowiedzi:

2 dla odpowiedzi № 1

DataTable nie implementuje IEnumerable, więc nie możesz tego użyć bezpośrednio w zapytaniu LINQ, musisz go przekonwertować na typ IEnumerable za pomocą AsEnumerable lubię to:-

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