Entity Framework:- Ошибка при приведении к производному исключения класса броска в таблице на запрос иерархии
Я столкнулся с исключением при попытке привести к производному классу; Невозможно привести тип "к типу". LINQ to Entities поддерживает только приведение типов примитивов и перечислений EDM.
(obj => ((DerivedClass)obj).DerivedProperty == true);
3 ответа
Спасибо всем за вашу помощь; Я решил проблему, используя оператор as вместо прямого приведения; Я не знаю причину, но это решило мою проблему.
obj => (obj as DerivedClass).DerivedProperty == true;
Скорее всего, ваша проблема решена с помощью метода IQueryable
Мое лучшее предположение состоит в том, что вы пытаетесь выполнить приведение перед выполнением оператора SQL, и LINQ to Entities не имеет представления о том, как преобразовать это в SQL.
Один из вариантов - выполнить SQL-запрос перед выполнением приведения, а затем LINQ to Objects сможет справиться с этим. Предупреждение: это может привести к проблеме N+1.
Возможно, есть более умное решение, но без большего количества кода это мое лучшее предположение.