expression-trees相关内容

难以实现通用的OrderBy解决方案

我有一个采用IQueryable的方法,并且我想在其中通用实现OrderBy.理想情况下,通过将c => c.SomeProperty作为参数传入,但是我不知道如何使泛型起作用,因此我尝试了使用字符串.但是我得到了错误: Incorrect number of parameters supplied for lambda declaration 这是我尝试过的(使用字符串方法) ..
发布时间:2020-11-02 19:12:44 C#/.NET

从Lambda创建表达式树

我有一个lambda表达式: (x) => x.Visits++ 在运行时,我想将其转换为字符串: "set Visits = Visits + 1" ,或者潜在的是,如果基础数据存储区不同(例如MongoDB) {$inc: {Visits : 1}} 我认为做到这一点的方法是使用表达式树,但是当我将lambda表达式分配给表达式树时,我得到“表达式树可能不包含赋值 ..
发布时间:2020-11-02 19:12:32 C#/.NET

在C#中,如何在运行时创建值类型变量?

我正在尝试实现类似的方法: (Func getFn, Action setFn) MakePair(T initialVal) { } 它将返回两个运行时生成的lambda,它们使用Expression树来获取和设置动态创建的变量来创建代码. 我当前的解决方案是动态创建一个带有一个元素的类型的数组,并引用该数组: (Func getFn, Action ..
发布时间:2020-11-02 19:12:21 C#/.NET

表达式访问者仅对某些lambda表达式调用VisitParameter

我希望能够使用嵌套扩展方法将EF中的实体投影到相应的视图模型. (请参阅我以前的问题使用扩展方法在EF中对单个实体的投影了解即时消息的详细信息. 根据这个问题,我建立了一个属性来用lambda替换表达式树中的扩展方法,从而能够做到这一点.它从扩展方法中获取方法参数,并在调用VisitParameter时将其替换(我不知道是否有办法在LambdaExpression中内联替换参数). 这 ..
发布时间:2020-11-02 19:12:16 C#/.NET

Func< T>的身体

如何从功能中获取身体 Func methodCall = () => output.SendToFile(); if (methodCall()) Console.WriteLine("Success!"); 我需要将此output.SendToFile()作为字符串获取 另一个例子: string log = ""; public void Fo ..
发布时间:2020-11-02 19:12:03 C#/.NET

使用表达式树的动态查询

我有一个表单,用户可以在其中从下拉列表中选择以下内容: table_name columnName_to_sort_by columnName_to_search_in 用户应在文本框中输入Search_text 该表格应从许多表格中提取数据.我想避免编写排序并搜索每个表的每个字段.这就是为什么我要使用表达式树.我想动态地建立查询. 我想编写一个通用方法,该方法将 ..
发布时间:2020-11-02 19:12:00 C#/.NET

如何在PHP中使用表达式树?

我目前正在编写一个可解决方程式的PHP程序.我已将输入方程式分成一个数组,以便数组中的每一行都包含一个项. (因此[0] ="+ 5x",[1] ="=",[2] ="-5",[3] ="+10".这只是一个基本等式.脚本还对以下内容进行了划分是()中的子数组,例如2x +(5-3x)= 3(x + 1)[0] ="+ 2 * x",[1] = array([0] ="+5" .... 但是 ..
发布时间:2020-11-02 19:11:57 PHP

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

我正在运行时为给定成员生成已编译的getter方法.现在,我的代码只是假设getter方法的结果是一个字符串(可以很好地用于测试).但是,我想使用我编写的自定义转换器类来实现此目的,请参见下文,添加的"ConverterBase"参考. 我不知道如何将对转换器类的调用添加到表达式树中. public Func GetGetter(MemberInfo ..
发布时间:2020-11-02 19:11:53 C#/.NET

一种生成SQL Server的“标准"消息的简单方法.表达形式?

这与SQL Server 2005(或更高版本)中的计算列和默认约束(可能还有其他表达式)有关.两者都使用任意表达式来生成一个值,例如(year+1)代表“下一年"的计算列(这显然是一个简单而愚蠢的示例). 我要执行的操作:我希望能够确定某些表中现有的计算列(或默认约束)是否与预期的定义相匹配,而后者是在用于创建表的软件生成的架构.我可以使用sp_helptext获取计算列的定义,并从sys ..
发布时间:2020-11-02 19:11:49 数据库

表达式树-如何获得声明实例?

关于表达式树,我是一个新手,所以我不确定如何问这个问题或使用什么术语.这是我正在尝试做的一个过于简化的版本: Bar bar = new Bar(); Zap(() => bar.Foo); public static void Zap(Expression> source) { // HELP HERE: // I want to get the bar ..
发布时间:2020-11-02 19:11:46 C#/.NET

动态创建一个选择对象属性的表达式

我希望能够动态构建一个表达式,它本质上是一个属性选择器. 我正在尝试使用它,以便提供灵活的搜索UI,然后将所选的搜索参数转换为Entity Framework查询. 由于我正在使用另一个库,因此我有大部分需要,但是缺少最后一部分,该部分将我的查询字符串参数转换为另一个库所需的适当的表达式选择器. 该库的参数为: Expression ..
发布时间:2020-11-02 19:11:42 C#/.NET

是否有通用的方法来迭代和打印未知集合中的值?

比方说,我有一个这样的Print方法: private static void Print(IEnumerable items) { // Print logic here } 我想将一个集合类传递给此Print方法,该方法应该像表一样打印所有字段.例如,我的输入集合可以是“人",“订单"或“汽车"等. 如果我将“汽车"集合传递给Print方法,它将打印“汽车"详细信息列表 ..
发布时间:2020-11-02 19:11:38 C#/.NET

从PropertyInfo创建表达式

我正在使用期望Expression>的API,并使用它在不同对象之间创建映射: Map(x => x.Id).To("Id__c"); // The expression is "x => x.Id" 如何从PropertyInfo创建必要的表达式?这个想法是: var properties = typeof(T).GetProperties(); ..
发布时间:2020-11-02 19:11:36 C#/.NET

由于JIT_MethodAccessCheck,编译的表达式树变慢

我们正在使用编译的表达式树来动态生成代码;一些仅在运行时可供我们使用的信息使我们(理论上)可以编写更简单,更快的代码. 在许多情况下,我们确实可以提高性能. 但是,在某些情况下,我们会降低性能.在这种情况下,Visual Studio Profiler显示性能差异是由于此方法引起的(在静态编译的代码中根本没有出现) JIT_MethodAccessCheck 此方法有什么作用? ( ..
发布时间:2020-11-02 19:11:34 C#/.NET

为什么在Expression.Call上编译的lambda构建比应该执行相同操作的委托慢一些?

为什么通过Expression.Call编译的lambda构建比应该执行相同操作的委托慢一些?以及如何避免呢? 解释BenchmarkDotNet结果. 我们正在比较CallBuildedReal与CallLambda;其他两个CallBuilded和CallLambdaConst是CallLambda的“子窗体",并显示相等的数字.但是与CallBuildedReal的区别是很重要的. ..
发布时间:2020-11-02 19:11:30 C#/.NET