问题标签 [expression-trees]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
461 浏览

c# - Expression.AddChecked 和 System.Int16

给定两条短裤 ( System.Int16)

我想OverflowException在添加它们时得到一个。

不起作用,因为结果left+rightInt32.

按预期工作。

我的问题是,使用表达式树,“技巧”不起作用:

调用f()不会抛出溢出异常而是返回-32768。怎么了?

0 投票
7 回答
26766 浏览

c# - 表达式树的实际使用

表达式树是一个不错的功能,但它的实际用途是什么?它们可以用于某种代码生成或元编程等吗?

0 投票
5 回答
4346 浏览

c# - Expression.Or,参数“item”不在范围内

我正在尝试将静态函数写入或两个表达式,但收到以下错误:

参数“项目”不在范围内。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.InvalidOperationException:参数“项目”不在范围内。

方法:

编辑:添加更多信息

or'd 的表达式来自下面的方法,执行得很好。如果有更好的方法或结果我全神贯注。另外,我不知道有多少人被提前或被淘汰了。

编辑:添加更多信息

或者,有没有更好的方法来做一个或?目前,.Where(constraint) 在约束类型为 Expression> 的情况下工作得很好。我该怎么做 where(constraint1 or constraint2) (到约束 n'th)

提前致谢!

0 投票
5 回答
6059 浏览

c# - 在 LINQ to SQL 中,如何将 LINQ 查询的一部分传递给函数

是否可以将 linq 查询的一部分传递给函数?我想为我的 DAL 创建一个始终使用相同查询接口的通用接口。例如,

这种事情可能吗?我认为这将使用表达式树来完成,但我无法找到它的示例。

0 投票
3 回答
620 浏览

c# - Determining scope of a MemberExpressions target

Is there anyone here with experience writing custom Linq providers?

What I'm trying to do is tell whether a MemberExpression that is a property on a business object should be included in the SQL, or treated as a constant, because its from a local variable that just happens to be a business object.

So for example, if you have this:

At the moment, my query translator will try to execute SELECT * FROM orders o where o.CustomerID = c.CustomerID, which of course doesn't work.

What I would like to do is examine the MemberExpression on the c.CustomerID and try to work out if its a local variable, or just something that is being used as part of the Linq expression.

I have managed to do it as a 2nd pass over the query, looking for fields that SQL Server won't be able to bind, and injecting their values instead, but if possible I'd like to get it all happening at the same time. I tried looking at the expression Type property, and IsAutoClass, but that was just a guess because it contained the word Auto. And it didn't work :)

0 投票
3 回答
730 浏览

c# - 是否可以将委托实例转换为 Lambda 表达式?

这是我的问题的上下文:

一种常见的技术是将方法的参数声明为 Lambda 表达式而不是委托。这样该方法就可以检查表达式来做一些有趣的事情,比如找出委托实例主体中方法调用的名称。

问题是您失去了 Resharper 的一些智能感知功能。如果方法的参数被声明为委托,Resharper 会在编写对该方法的调用时提供帮助,提示您使用 x => x 语法作为参数值提供给该方法。

所以......回到我的问题,我想做以下事情:

0 投票
1 回答
357 浏览

c# - 通过表达式树读取行的最佳方法是什么?

如果我想从控制台获取用户输入到我的表达式树。最好的方法是什么?以及如何使变量“名称”鸭子打字?

这是我的代码。

0 投票
1 回答
584 浏览

linq-to-sql - 使用 Linq 表达式树设计灵活的高级搜索的模式或技术

我希望在我的 ASP.NET/SQL Server 2005 应用程序中添加“高级搜索”功能。理想情况下,我希望它是表驱动的。例如,如果我的架构随着向要搜索的表中添加新列而发生变化,我希望 UI 将新列的添加反映为可搜索字段。我可以设想一些包含可搜索字段、它们的类型、相关查找等的控制表。

构建 UI 时可以参考这些表。我的问题在于创建动态 SQL 的最佳方法。一种方法是自己构造一个参数化的 SQL 语句。但我对 Linq 很感兴趣,不知何故,我认为 System.Linq.Dynamic 命名空间——以及Linq 表达式树——可能会提供更优雅/更强大的解决方案?

希望任何此类解决方案都适用于 Linq to Sql 或 Linq to Entities。我调查这条路径是否正确,或者这个问题空间是否真的不是表达式树的用例之一?

0 投票
2 回答
9793 浏览

c# - C# LINQ Where 谓词类型参数

我有一个带有模拟数据值的 XElement。

我有一个查询 xml 的表达式:

用于:

设计时错误是:

无法从用法中推断方法“System.Linq.Enumerable.Where(System.Collections.Generic.IEnumerable, System.Func)”的类型参数。尝试明确指定类型参数'

提供给 Where 的委托应该接受一个 XElement 并返回一个布尔值,标记该项目是否与查询匹配,我不确定如何向委托或 where 子句添加更多内容以标记类型。

此外,针对实体框架的实际功能的并行方法不存在此问题。LINQ-to-XML 版本有什么不正确的地方?

0 投票
5 回答
11545 浏览

c# - 如何从字符串为深层属性创建表达式树/lambda

给定一个字符串:“Person.Address.Postcode”我希望能够在 Person 的实例上获取/设置这个 postcode 属性。我怎样才能做到这一点?我的想法是用“。”分割字符串。然后遍历这些部分,寻找前一个类型的属性,然后构建一个看起来像这样的表达式树(为伪语法道歉):

不过,我在创建表达式树时遇到了真正的麻烦!如果这是最好的方法,有人可以建议如何去做,还是有更简单的选择?

谢谢

安德鲁