实体框架:- 强制转换以派生每个层次结构查询的表中的类引发异常时出错
本文关键字:查询 出错 异常 层次结构 框架 转换 派生 实体 | 更新日期: 2023-09-27 18:32:01
当我尝试投射到派生类时,我遇到了一个异常;无法将类型"强制转换为类型"。LINQ to 实体仅支持强制转换 EDM 基元或枚举类型。
(obj => ((DerivedClass)obj).DerivedProperty == true);
感谢大家的帮助;我通过使用 as 运算符而不是直接铸造解决了这个问题;我不知道原因,但这解决了我的问题。
obj => (obj as DerivedClass).DerivedProperty == true;
您的问题很可能通过使用 IQueryable
我最好的猜测是,您正在尝试在执行 SQL 语句之前进行转换,而 LINQ to Entities 不知道如何将其转换为 SQL。
其中一个选项是在执行强制转换之前执行 SQL 查询,然后 LINQ to Objects 应该能够处理此问题。警告:这可能会导致 N+1 问题。
可能有一个更聪明的解决方案,但没有更多的代码,这是我最好的猜测。