问题标签 [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 投票
4 回答
41111 浏览

c# - 如何在 C# 中创建表达式树来表示“String.Contains("term")”?

我刚刚开始使用表达式树,所以我希望这是有道理的。我正在尝试创建一个表达式树来表示:

到目前为止,我得到了:

我只是不知道如何引用 String.Contains() 方法。

帮助表示赞赏。

0 投票
2 回答
769 浏览

c# - 通过将属性传递给方法来获取属性的名称

StackOverflow 用户 jolson 有一段非常好的代码,它举例说明了如何在不使用字符串的情况下注册 menthods,但这里是表达式树。

是否可以为属性而不是方法提供类似的东西?传递一个属性(不是属性名)并在方法内部获取属性名?

像这样的东西:

谢谢。

0 投票
8 回答
91636 浏览

c# - 如何使用通用扩展方法中的字符串列名在 IQueryable 上应用 OrderBy?

因为 OrderBy 的类型不是从 sortExpression 推断出来的,所以我需要在运行时指定如下内容:

或者

但是我认为这是不可能的,因为 TSortColumn 只能在运行时确定。

有没有解决的办法?

0 投票
2 回答
1607 浏览

c# - 如何使用方法调用生成已编译的 lambda?

我在运行时为给定成员生成编译的 getter 方法。现在,我的代码只是假设 getter 方法的结果是一个字符串(适用于测试)。但是,我想使用我编写的自定义转换器类来完成这项工作,见下文,我添加的“ConverterBase”参考。

我不知道如何将对转换器类的调用添加到我的表达式树中。

我正在寻找在第二个 TODO 区域中放置的内容(我可以处理第一个 :))。

生成的编译 lambda 应该以 U 类型的实例作为参数,调用指定的成员访问函数,然后使用结果调用转换器的“FieldToString”方法,并返回结果字符串。

0 投票
2 回答
1609 浏览

linq - 在 Linq/Lambda 中编写存储过程(可单元测试但高性能的存储过程)。可能的?

我正在为报告模型(SQL Server Reporting Services)创建数据源。这些报告需要大量的连接和计算(比如说,计算财务参数,比如花在这个、那个、金额 A 和金额 B 上的钱)......所有这些都涉及子对象。

为这段代码编写单元测试对我来说很有意义(即遍历订单集合,根据业务规则和子对象聚合信息等)。为了正确地做到这一点,我希望我的代码看起来大约。像这样

然后测试返回值。

但是这段代码不是将在报告视图中使用的 SQL……当然……所以我在想,我可以在数据库中插入一个 .NET 程序集。这里的问题当然是性能……我不想在 C# 中循环所有这些对象……太慢了。

所以,很自然,Linq/Lambda/Expression 树似乎是我的答案。众所周知,当你在做 Linq to SQL 时,会先构建表达式树,然后基于它们生成适当的 SQL。

因此,我可以使用 lambda 表达式在 Linq to Objects 中编写我的代码,在示例集合上对这段代码进行单元测试(将表达式编译为 .net),并在 DB 存储过程中重用与 Linq to SQL 相同的代码,以便在内部SQL Server 它会为我生成正确的 SQL(就像 Linq to SQL 已经做的那样)......

然后我可以从单元测试和用 C# 编写域逻辑代码以及用于报告的高性能存储过程中获益。

可能的?我可以在 SQL Server CLR 存储过程中使用 Linq/Lambda 吗?有人做过或知道如何使它工作吗?我疯了吗?你知道更好的方法吗?

谢谢

PS我想现在我想出了应该如何正确地做到这一点。根据 Udi Dahan 的说法,如果我理解他的话。数据库应该是非规范化的,所有计算的字段都应该在表中的对象上。当子对象(添加了 OrderLine)发生某些事情时,我的 Customer 对象应该接收一个事件并重新计算智能值(缓存它并保持)。

然后报告直截了当,没有逻辑并且工作快速......

0 投票
6 回答
27379 浏览

c# - 如何在 C# 表达式树中设置字段值?

鉴于:

如何编译 lambda 表达式以将“target”参数上的字段设置为“value”?

0 投票
2 回答
14358 浏览

c# - 如何创建调用 IEnumerable 的表达式树。任何(...)?

我正在尝试创建一个表示以下内容的表达式树:

为了清楚起见,我有以下内容:

我究竟做错了什么?有人有什么建议吗?

0 投票
4 回答
1078 浏览

c# - .NET 中的表达式树 - 库?

我最近使用表达式树编写了一个动态查询工具,随着我的使用,表达式树的力量开始显现。我的查询工具还可以构成报告工具、动态决策引擎以及可能需要以抽象方式处理动态对象的其他情况的基础。

这个过程很痛苦(通过反射递归调用泛型方法 - 呃)所以我想知道是否有人创建了一个可以利用表达式树的力量来完成其中一些任务的泛型库?我见过PredicateBuilder但有人知道其他人吗?

0 投票
2 回答
2373 浏览

c# - 如何在 C# 中通过解析 Xml 创建表达式树?

我希望通过使用 C# 解析 xml 来创建表达式树。xml 将如下所示:

或另一个例子...

...关于从哪里开始的任何指示都会有所帮助。

亲切的问候,

0 投票
1 回答
5633 浏览

c# - 在表达式树中调用实例方法的最佳方法?

在表达式树中调用实例方法的最佳方式是什么?对于接口 IColumn 的接口方法“object GetRowValue(rowIndex)”,我当前的解决方案是这样的。

有更快的方法吗?是否可以创建表达式而不必将方法名称作为字符串传递(不利于重构)?