当我尝试转换为派生类时遇到异常;无法将类型 '' 转换为类型 ''。LINQ to Entities 仅支持转换 EDM 基元或枚举类型。
(obj => ((DerivedClass)obj).DerivedProperty == true);
当我尝试转换为派生类时遇到异常;无法将类型 '' 转换为类型 ''。LINQ to Entities 仅支持转换 EDM 基元或枚举类型。
(obj => ((DerivedClass)obj).DerivedProperty == true);
感谢你的帮助; 我通过使用 as 运算符而不是直接转换解决了这个问题;我不知道原因,但这解决了我的问题。
obj => (obj as DerivedClass).DerivedProperty == true;
您的问题很可能通过使用IQueryable< TBase >.OfType< TDerived >()方法开始查询来解决,但您应该发布更多关于您正在做什么的详细信息。
我最好的猜测是,您试图在执行 SQL 语句之前进行转换,而 LINQ to Entities 不知道如何将其转换为 SQL。
您的选择之一是在执行转换之前执行 SQL 查询,然后 LINQ to Objects 应该能够处理这个问题。警告:这可能会导致 N+1 问题。
可能有更聪明的解决方案,但没有更多代码,这是我最好的猜测。