相关疑难解决方法(0)

表达式<Func <>>和Func <>之间的区别

举个例子,为什么大多数LINQ运算符都接受Expression<Func<TSource>>它的等价物Func<TSource>呢?

使用泛型Expression类而不是直接lambda语法的好处/原因是什么?

c# linq

77
推荐指数
4
解决办法
2万
查看次数

有些Funcs无法转换为等效的表达式吗?

这是我之前在这里看到的问题的后续跟进:

对于传递Expression vs. Func参数感到困惑

那里接受的回答者建议重构一个表达引用本地对象的表达式,Linq to Entities实际上可以对后备存储执行(在我的例子中是SQL Server)

我花了很长时间试图想出一些适合我正在做的事情.我的原创

Func<Thing, bool> whereClause
Run Code Online (Sandbox Code Playgroud)

引用了Linq to Entities或SQL在运行时无法理解的本地Dictionary对象.我尝试重构为伪造字典的多个列表,然后是数组.每次,我都会遇到运行时错误,抱怨上下文无法识别List或方法索引器上的方法.

最终我放弃了,只是提供了一个额外的方法,当我无法想出正确的表达式时,它接受一个Func参数.

我不是试图找到解决我的具体问题的方法,我只是想知道是否总能转换,比如说

Func<Thing, bool>
Run Code Online (Sandbox Code Playgroud)

等同于

Expression<Func<Thing, bool>>
Run Code Online (Sandbox Code Playgroud)

哪个可以对抗Linq到实体.或者,如果有许多查询示例,您必须先将数据拉入内存.

c# linq linq-to-entities sql-server-2008 c#-4.0

2
推荐指数
2
解决办法
265
查看次数

标签 统计

c# ×2

linq ×2

c#-4.0 ×1

linq-to-entities ×1

sql-server-2008 ×1