【发布时间】:2012-01-04 19:38:34
【问题描述】:
这是我之前在这里看到的一个问题的后续:
Confused about passing Expression vs. Func arguments
那里接受的回答者建议将引用本地对象的表达式重构为 Linq to Entities 可以对后备存储实际执行的东西(在我的情况下是 SQL Server)
我花了很长时间试图想出一些对我正在做的事情有用的东西。我的原创
Func<Thing, bool> whereClause
正在引用 Linq to Entities 或 SQL 在运行时无法理解的本地 Dictionary 对象。我尝试重构为伪造字典的多个列表,然后是数组。每次,我都会遇到运行时错误,抱怨上下文无法识别列表上的方法或数组索引器等内容。
最终我放弃了,只是提供了一个额外的方法,当我无法想出正确的表达式时,它需要一个 Func 参数。
我并不是想为我的具体问题找到解决方案,我只是想知道一般来说是否总是可以转换,比如说
Func<Thing, bool>
等价的
Expression<Func<Thing, bool>>
可以针对 Linq to Entities 运行。 或者,如果有很多查询示例,您只需必须先将数据拉入内存。
【问题讨论】:
标签: c# linq sql-server-2008 c#-4.0 linq-to-entities