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