expression-trees相关内容

如何在 EF 查询中使用函数参数化选择器?

我有一个投影函数,我传递给 IQueryable.Select() 方法: 私有静态表达式>获取价格选择器(){返回 e =>新的价格项目 {Id = e.Id,价格 = Math.Round(e.Price, 4)};} 一切正常,但我想像这样参数化它: 私有静态表达式>GetPriceSelector(Func 公式){返回 e =>新的价格项目 {Id = e.Id,价格 = 公式 ..
发布时间:2022-01-20 11:50:14 C#/.NET

修改 IQueryable.Include() 的表达式树,为连接添加条件

基本上,我想实现一个存储库,即使通过导航属性也可以过滤所有软删除的记录.所以我有一个基本实体,类似这样: 公共抽象类实体{公共 int ID { 获取;放;}公共布尔 IsDeleted { 获取;放;}...} 还有一个存储库: 公共类 BaseStore: IStore其中 TEntity :实体{受保护的只读 ApplicationDbContext 数据库;公共 IQueryable ..
发布时间:2022-01-20 11:37:32 C#/.NET

实体框架 + DayOfWeek

使用 System.Linq.Dynamic(在此处管理 https://github.com/kahanu/System.Linq.Dynamic ),我正在尝试使用实体捕获 DateTime 上的 DayOfWeek 字段以用于聚合目的框架 6(或更高版本). 以前要求类似的东西,这有很大帮助,Dynamic Linq + Entity Framework:动态选择的日期时间修改 ..
发布时间:2022-01-20 10:51:34 C#/.NET

表达式树和调用委托

所以我有一个 delegate 指向一些我在第一次创建 delegate 对象时实际上并不知道的函数.该对象稍后会设置为某个函数. 然后我还想创建一个表达式树,它使用参数调用委托(为了这个问题,参数可以是 5).这是我正在努力解决的问题;下面的代码显示了我想要的,但它没有编译. Func;函数=空;表达式 expr = Expression.Invoke(func, Expression. ..
发布时间:2022-01-18 12:24:27 C#/.NET

为什么是 Func<>从 Expression<Func<>> 创建比 Func 慢直接声明?

为什么通过 .Compile() 从 Expression 创建的 Func 比仅使用 Func< 慢得多;> 直接声明? 我刚刚从使用直接声明的 Func 更改为在应用程序 i 中从 Expression> 创建的我正在努力,我注意到性能下降了. 我刚刚做了一个小测试,从表达式创建的 Func 花费“几乎"两倍于直接声明的 Func 时间. 在我的机器上,直接 ..
发布时间:2022-01-18 12:19:19 C#/.NET

为什么要使用表达式<Func<T>>而不是 Func T ?

我了解 lambda 以及 Func 和 Action 委托.但是表达式难倒我. 在什么情况下你会使用 Expression> 而不是普通的旧 Func? 解决方案 当您想将 lambda 表达式视为表达式树并查看它们内部而不是执行它们时.例如,LINQ to SQL 获取表达式并将其转换为等效的 SQL 语句并将其提交给服务器(而不是执行 lambda). ..
发布时间:2022-01-18 11:49:26 C#/.NET

在 Prolog 中构建表达式树

我正在寻找一种在 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_ ..
发布时间:2022-01-12 09:59:19 其他开发

转换表达式树

要有: Expression>exp1 = x =>x.mesID == 1;表达式>exp2 = x =>x.mesID == 1; 现在我需要将 exp1 传递给 _db.Messages.where(exp1); 问题是我只有 exp2,我需要将类型转换为 Message ,所有属性都相同!> 现在我这样做: var par = Expr ..
发布时间:2022-01-07 16:16:20 C#/.NET

C#如何转换一个表达式<Func<SomeType>>到表达式<Func<OtherType>>

我之前使用过基于 lamdas 的 C# 表达式,但我没有手工编写它们的经验.给定一个 Expression>originalPredicate,我想创建一个Expression>翻译谓词. 在这种情况下 SomeType 和 OtherType 具有相同的字段,但它们不相关(没有继承,也不是基于公共接口). 背景:我有一个基于 LINQ to SQL 的存储库实现.我将 LINQ t ..
发布时间:2022-01-07 15:47:50 C#/.NET

在 Monotouch 中编译 lambda 并在设备上调用委托

我目前正在 MonoTouch 中移植 .NET 代码库,并且我目前正在研究一种接收 Expression 的方法.我正在尝试编译它,然后动态调用它. 这是我所做的: //这是我可以接收到的示例表达>表达式 = (a => Console.WriteLine (a * 2));//这就是我试图调用它的方法表达式.Compile().DynamicInvoke(6); 这在 ..
发布时间:2022-01-05 15:08:51 C#/.NET

NHibernate 中的表达式树

我有一个有这个签名的方法 public static IListGetBy(System.Linq.Expressions.Expression>表达式) 我过去常常通过从表达式树中检索数据来传递 lambda 表达式并在 nhibernate 中进行搜索限制. 所以当类用户传递类似: c =>c.fullName == "John" &&c.last ..
发布时间:2022-01-02 16:19:54 C#/.NET

使用参数名称动态创建委托

您好,我正在尝试创建一个函数,该函数动态创建一个委托,该委托具有与作为参数接收的 MethodInfo 相同的返回值和相同的参数,并且这对于相同的参数名称非常重要! 到目前为止我所做的是创建一个函数,该函数返回一个接收相同参数类型并具有与 MethodInfo 相同的返回值但它没有参数名称的 lambda: static void Example(){人亚当 = 新人();MethodI ..
发布时间:2021-12-29 20:08:13 C#/.NET

实体框架达到 2100 参数限制

我正在将我们的一些代码从 LINQ-to-SQL 迁移到实体框架.以前,当遇到来自 SQL Server 的 2100 参数限制时(描述 此处),我使用了 Marc Gravell 这里.正如他在自己的回复中所述,它不适用于实体框架. 我对表达式完全没有经验,不知道从哪里开始,但我正在寻找本质上是相同的扩展方法,但适用于实体框架.预先感谢您提供的任何帮助. 解决方案 EF中不存在21 ..
发布时间:2021-12-29 19:51:22 其他开发