表达式与Lambdas

Vac*_*ano 5 .net c# expression

我知道什么是Lambda表达式.

但我不确定这是否与a相同Expression.这里似乎有比我知道更多的知识.

我正在寻找包装IQueryable和使用表达式很多.那么,例如,这里的'Expression'参数还有更多可以在Lambda中想到的吗?

public InterceptedQuery(InterceptingProvider provider, Expression expression) 
{ 
    this._provider = provider; 
    this._expression = expression; 
}  
Run Code Online (Sandbox Code Playgroud)

Ada*_*son 4

lambda 表达式是一种编译器功能,根据上下文编译为以下两种内容之一:

  • 一个(隐藏)函数和它的委托
  • 一个Expression

一旦应用程序被编译,lambda 表达式的概念就不存在了,因为它已变成上述两个选项之一。

我不确定你的意思

这里的“表达式”参数是否比 Lambda 中能想到的更多

表达式以可检查的形式封装和表达应用程序逻辑(换句话说,它使您可以根据调用的属性和函数、包含的常量、比较等查看开发人员编写的内容)。这就是查询提供程序(大多数情况下是对象关系映射程序,如实体框架)获取代码并将其转换为 SQL 的方式。