expression-trees相关内容
基本上,我尝试使用表达式树来完成此操作 var properties = new Dictionary(); foreach (var propInfo in objType.GetTypeInfo().GetProperties(BindingFlags.Public)) { var name = propInfo.Name; var va
..
public static IQueryableApplySortFilter(这个 IQueryable 查询,字符串 columnName)其中 T :实体对象{var param = Expression.Parameter(typeof(T), "o");var body = Expression.PropertyOrField(param,columnNam
..
我有一个投影函数,我传递给 IQueryable.Select() 方法: 私有静态表达式>获取价格选择器(){返回 e =>新的价格项目 {Id = e.Id,价格 = Math.Round(e.Price, 4)};} 一切正常,但我想像这样参数化它: 私有静态表达式>GetPriceSelector(Func 公式){返回 e =>新的价格项目 {Id = e.Id,价格 = 公式
..
基本上,我想实现一个存储库,即使通过导航属性也可以过滤所有软删除的记录.所以我有一个基本实体,类似这样: 公共抽象类实体{公共 int ID { 获取;放;}公共布尔 IsDeleted { 获取;放;}...} 还有一个存储库: 公共类 BaseStore: IStore其中 TEntity :实体{受保护的只读 ApplicationDbContext 数据库;公共 IQueryable
..
使用 System.Linq.Dynamic(在此处管理 https://github.com/kahanu/System.Linq.Dynamic ),我正在尝试使用实体捕获 DateTime 上的 DayOfWeek 字段以用于聚合目的框架 6(或更高版本). 以前要求类似的东西,这有很大帮助,Dynamic Linq + Entity Framework:动态选择的日期时间修改
..
所以我有一个 delegate 指向一些我在第一次创建 delegate 对象时实际上并不知道的函数.该对象稍后会设置为某个函数. 然后我还想创建一个表达式树,它使用参数调用委托(为了这个问题,参数可以是 5).这是我正在努力解决的问题;下面的代码显示了我想要的,但它没有编译. Func;函数=空;表达式 expr = Expression.Invoke(func, Expression.
..
为什么通过 .Compile() 从 Expression 创建的 Func 比仅使用 Func< 慢得多;> 直接声明? 我刚刚从使用直接声明的 Func 更改为在应用程序 i 中从 Expression> 创建的我正在努力,我注意到性能下降了. 我刚刚做了一个小测试,从表达式创建的 Func 花费“几乎"两倍于直接声明的 Func 时间. 在我的机器上,直接
..
对于属性有 GetGetMethod 和 GetSetMethod 这样我就可以做到: Getter = (Func)Delegate.CreateDelegate(typeof(Func),propertyInfo.GetGetMethod()); 和 Setter = (Action)Delegate.CreateDelegate(typeof(Action),propertyInfo.
..
我了解 lambda 以及 Func 和 Action 委托.但是表达式难倒我. 在什么情况下你会使用 Expression> 而不是普通的旧 Func? 解决方案 当您想将 lambda 表达式视为表达式树并查看它们内部而不是执行它们时.例如,LINQ to SQL 获取表达式并将其转换为等效的 SQL 语句并将其提交给服务器(而不是执行 lambda).
..
我正在寻找一种在 Prolog 中构建表达式树的方法.我已经做了一些实验,并提出了以下工作代码(仅处理常量和加号表达式): const(_).加(_,_).评估(常量(R),R).eval(plus(A, B), R) :- number(A), number(B), R 是 A+B.eval(plus(A, B), R) :- number(A), eval(B, B_R), R 是 A+B_
..
要有: Expression>exp1 = x =>x.mesID == 1;表达式>exp2 = x =>x.mesID == 1; 现在我需要将 exp1 传递给 _db.Messages.where(exp1); 问题是我只有 exp2,我需要将类型转换为 Message ,所有属性都相同!> 现在我这样做: var par = Expr
..
我之前使用过基于 lamdas 的 C# 表达式,但我没有手工编写它们的经验.给定一个 Expression>originalPredicate,我想创建一个Expression>翻译谓词. 在这种情况下 SomeType 和 OtherType 具有相同的字段,但它们不相关(没有继承,也不是基于公共接口). 背景:我有一个基于 LINQ to SQL 的存储库实现.我将 LINQ t
..
假设我们需要应用几个条件来从名为“事物"(未知数量和性质)的表中进行选择 如果条件已知,我们可以写 db.Things.Where(t=>foo1 && foo2 || foo3); 但是如果我们必须以编程方式构建 Where 条件,我可以想象我们如何应用 AND 条件 IQuerable DesiredThings = db.Things.AsQuerable();foreach(A
..
我目前正在 MonoTouch 中移植 .NET 代码库,并且我目前正在研究一种接收 Expression 的方法.我正在尝试编译它,然后动态调用它. 这是我所做的: //这是我可以接收到的示例表达>表达式 = (a => Console.WriteLine (a * 2));//这就是我试图调用它的方法表达式.Compile().DynamicInvoke(6); 这在
..
这是在 C# 中可以做的事情 - var 二 = 2;System.Linq.Expressions.Expression>expr = x =>x * 两个;expr.Compile().Invoke(4);//返回 8 我希望在 F# 中做精确的等效.这是我尝试过的,但没有编译 - 让二 = 2让 expr = (fun x -> x * 二)
..
如何将BinaryExpression和Expression>结合起来? 例如: void AddGlobalFilter(Expression> expr){var parameter = Expression.Parameter(type, "t");var member = Expression.Property(filter.Parameter, field);var 常量 = E
..
我有一个有这个签名的方法 public static IListGetBy(System.Linq.Expressions.Expression>表达式) 我过去常常通过从表达式树中检索数据来传递 lambda 表达式并在 nhibernate 中进行搜索限制. 所以当类用户传递类似: c =>c.fullName == "John" &&c.last
..
您好,我正在尝试创建一个函数,该函数动态创建一个委托,该委托具有与作为参数接收的 MethodInfo 相同的返回值和相同的参数,并且这对于相同的参数名称非常重要! 到目前为止我所做的是创建一个函数,该函数返回一个接收相同参数类型并具有与 MethodInfo 相同的返回值但它没有参数名称的 lambda: static void Example(){人亚当 = 新人();MethodI
..
我正在将我们的一些代码从 LINQ-to-SQL 迁移到实体框架.以前,当遇到来自 SQL Server 的 2100 参数限制时(描述 此处),我使用了 Marc Gravell 这里.正如他在自己的回复中所述,它不适用于实体框架. 我对表达式完全没有经验,不知道从哪里开始,但我正在寻找本质上是相同的扩展方法,但适用于实体框架.预先感谢您提供的任何帮助. 解决方案 EF中不存在21
..
我有一个带有属性的简单类 class Foo{字符串标题{得到;放;}} 我试图通过调用类似的函数来简化数据绑定 BindToText(titleTextBox, ()=>foo.Title ); 声明如下 void BindToText(控件控件,Expression>属性){var mex = property.Body as MemberExpression;字符串名称 = mex
..