2

当我尝试转换为派生类时遇到异常;无法将类型 '' 转换为类型 ''。LINQ to Entities 仅支持转换 EDM 基元或枚举类型。

 (obj => ((DerivedClass)obj).DerivedProperty == true);
4

3 回答 3

2

感谢你的帮助; 我通过使用 as 运算符而不是直接转换解决了这个问题;我不知道原因,但这解决了我的问题。

obj => (obj as DerivedClass).DerivedProperty == true;
于 2016-02-07T20:24:08.587 回答
1

您的问题很可能通过使用IQueryable< TBase >.OfType< TDerived >()方法开始查询来解决,但您应该发布更多关于您正在做什么的详细信息。

于 2016-01-25T22:01:21.120 回答
0

我最好的猜测是,您试图在执行 SQL 语句之前进行转换,而 LINQ to Entities 不知道如何将其转换为 SQL。

您的选择之一是在执行转换之前执行 SQL 查询,然后 LINQ to Objects 应该能够处理这个问题。警告:这可能会导致 N+1 问题。

可能有更聪明的解决方案,但没有更多代码,这是我最好的猜测。

于 2016-01-25T21:57:44.753 回答