Я использую LinqPad для проверки моего запроса. Этот запрос работает, когда соединение LInqPad относится к моей базе данных (LInq to SQL), но оно не работает, когда я изменяю соединение для использования моей Entity Framework 5 Model.dll. (Linq to Entity). Это в C#.Linq To Entities 'Поддерживаются только примитивные типы или типы перечислений' Ошибка
У меня есть две таблицы, называемые Plan и PlanDetails. Отношения - это один план для многих плагинов.
var q = from pd in PlanDetails
select new {
pd.PlanDetailID,
ThePlanName = (from p in this.Plans
where p.PlanID == pd.PlanID
select p.PlanName)
};
var results = q.ToList();
q.Dump(); //This is a linqpad method to output the result.
Я получаю эту ошибку «NotSupportedException:. Невозможно создать постоянное значение типа„“Domain.Data.Plan Только примитивные типы или типы перечисления поддерживаются в этом контексте.» Любые идеи, почему это работает только с Linq to SQL?
Я беспокоюсь о том, почему он должен делать вложенный запрос, когда он говорит «Один план для многих планов». Это означает, что PlanDetails не могут стоять в одиночестве. Они должны быть связаны с планом ... Итак, если у вас есть PlanDetail он должен иметь навигационное свойство, называемое Plan (если не переименовано) – scartag
точно, ему не нужно выполнять условие, но ради этой ошибки. –
Спасибо! Я играл с EF, и это тоже имеет смысл. Я попробую это на двух несвязанных сущностях. – duyn9uyen