Сообщение об ошибке: «В этом контексте поддерживаются только примитивные типы или типы перечислений».

Я обрабатываю отчет для страницы asp.net, и я пытаюсь присвоить результаты этого выражения linq существующему набору данных, но я получаю «В этом контексте поддерживаются только примитивные типы или типы перечислений». Сообщение об ошибке. Вот мой код:

var contextTable = new dbpersonnelEntities(); var contextHistory = new WriterInResidenceEntities(); var rslt = (from c in contextTable.TableofOrganizationRpts where !(from o in contextHistory.emp_history select o.employeeID).Contains((int)c.employeeid_fk) select c).ToList(); ReportDataSource r = new ReportDataSource("tableOfOrgDS", rslt); 

Вы не можете смешивать типы сущностей из разных контекстов в одном запросе LINQ. Либо поставьте их в один контекст, либо попытайтесь выполнить это:

 var employeeIds = (from o in contextHistory.emp_history select o.employeeID).ToList(); 

а затем передать этот список во второй запрос:

 var rslt = (from c in contextTable.TableofOrganizationRpts where !employeeIds.Contains((int)c.employeeid_fk) select c).ToList(); 

Это должно генерировать условие IN в результате SQL-запроса. Обратите внимание, что это может работать медленно.