问题标签 [predicatebuilder]

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 投票
1 回答
235 浏览

linq - 组合 Lambda 动态创建

我想构建 lambda 表达式:

我使用 PredicateBuilder,但出现此错误:

从范围“”引用的“ProactisMvc.Web.ProactisWsServiceReference.Offre”类型的变量“f”,但未定义

怎么了 ?还有其他解决方案吗?

0 投票
1 回答
48968 浏览

c# - PredicateBuilder 是如何工作的

C# in a Nutshell 有一个名为 PredicateBuilder 的免费类,它可以在此处逐段构造 LINQ 谓词。这是向谓词添加新表达式的方法的摘录。有人可以解释一下吗?(我已经看到了这个问题,我不想要像那里那样的一般性答案。我正在寻找关于 Expression.Invoke 和 Expression.Lambda 如何构建新表达式的具体解释)。

0 投票
1 回答
459 浏览

c# - 用于重复比较的谓词表达式函数

我有一个谓词处理程序,可以测试近 200 个案例,每个测试都涉及五种可能的比较。我想简化这段代码,但在如何用语法表达这一点时遇到了困难。

上面的 switch 语句被重复了近 200 次,唯一不同的是每次检查的字段名称。我想尽可能减少这段代码。

0 投票
2 回答
2086 浏览

linq-to-sql - 使用带有 NN 连接的 PredicateBuilder 优化 Linq 查询

我正在使用 Linq 查询 MS CRM 2011 Web 服务。我有一个查询导致 SQL 很差,它获取了太多的中间数据,而且它的性能很糟糕!!我是新手,所以很可能是我使用它的方式......

我有两个通过 NN 关系链接的实体:ProductSalesLink. Product我想从他们那里恢复一堆SerialNumber以及与他们相关的所有SalesLink东西。

这是我使用 PredicateBuilder 的查询:

使用 SQL 探查器,我看到它会导致没有 WHERE 子句的中间 SQL 查询,如下所示:

这会返回大量(无用)数据。我认为加入是在客户端而不是在数据库端完成的......

我应该如何改进这个查询?我跑了大约 3 分钟,这是完全不能接受的。

谢谢。


“解决方案”

根据 Daryl 对使用 QueryExpression 而不是 Linq to CRM 的回答,我得到了完全相同的结果。

我真的很想找到使用 Linq 的解决方案,但似乎 Linq to CRM 还没有……

0 投票
1 回答
706 浏览

linq-to-entities - EF 5.0、PredicateBuilder 和 LinqKit

开始使用J. Albahari先生的 LinqKit,有谁知道发布EF 5.0是否有一些警告或需要注意的事项?

EF 5.0 和 L2E 中是否会有任何重大变化意味着使用不同(或不再使用)PredicateBuilder类和AsExpandable()方法来构建动态查询?

感谢您的建议。

0 投票
2 回答
1172 浏览

linq - 使用反射与通用/动态 linq 谓词中的子属性进行比较

我必须一般为实体框架 Linq 查询构建一个比较谓词。我正在使用反射,并且能够毫无问题地构建单级 Lambda 表达式。但是,我开始陷入困境的地方是我有一个有关系的实体

我怎样才能将“Child.property”传递给反射,以便能够创建一个 lambda 表达式进行比较并得出一个类似于 item => item.Child.property == value 的 lambda 表达式?

0 投票
1 回答
308 浏览

sql - 在使用 PredicateBuilder 时需要帮助

我需要了解如何使用PredicateBuilder. 在几乎每个如何使用它的示例中,他们显示的代码如下:

那个Employee对象是什么,大于和小于括号之间的那个?我已经为此绞尽脑汁了。我正在使用 Linq to SQL 实体,当我自己尝试此操作时出现编译错误。我认为错误是这样的:

“不能从 Linq 表投射到……”

我是初学者。请原谅我问什么可能是显而易见的事情。谢谢你。

0 投票
2 回答
1394 浏览

c# - 从多个参数构建 IQueryable (EF4) 查询

我正在尝试从表单中的谓词列表中构建一个“或”谓词List<Expression<Func<T, bool>>>

但这会返回我的源代码中的每一行吗?

为了测试我正在寻找c=>c.FullName.Contains("Smith") or c=>c.FullName.Contains("Jones")

我尝试修改以使用PredicateBuilder但它仍然返回源中的每一行。

非常感谢您的任何帮助!

最终结果将是允许 AND 和 OR,
例如 c=>c.FullName.Contains("Dav") AND c=>c.CustomerType == 'Staff'

0 投票
1 回答
720 浏览

c# - 用短日期构建动态 lambda 谓词

我有以下代码可以帮助我通过反射构建 lambda 表达式。但是,当我尝试与 a 进行比较时,Date它会将我的值转换为完整的DateTime邮票。我怎样才能让它建立我的谓词,所以它只会比较短日期?

我知道Convert.ChangeType是将字符串转换为 a的那个DateTime,但我得到的是item => item.DateToCheck == 1/1/2012 12:00:00AM,当我想要的时候item => item.DateToCheck == 1/1/2012

0 投票
1 回答
876 浏览

asp.net-mvc-3 - C# Entity Framework 和 Predicate Builder - 在 IQueryable / Pagination 问题中查找匹配行的索引

我有一个PredicateBuilder表达式,它返回一个IQueryable这样的(人为的例子):

然后我使用它来生成一个分页列表,其中只包含给定页面的结果,使用 MVC 索引控制器来处理CoolEntity实体,如下所示:

此查询确保每个页面只返回相关结果,因为通过存储库从 SQL 数据库返回了数千条记录。它一直运行良好。

问题是,我现在希望能够找出我需要为特定实体返回的索引的哪些分页页面。例如,假设我的 CoolEntity 对象之一的 ID 为 5 -pageNumber如果我想为我的 Index 控制器加载该实体所在的分页页面,我如何确定该值需要是什么?

具体来说,我怎样才能发现对于results,ID 为 5 的实体是第 651 行,并因此使用这个数字来确定pageNumber(即Math.Ceiling(651/pagesize)或类似的东西)?有更好的方法吗?