问题标签 [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.
mysql - 带有谓词生成器的 MySQL 不起作用?
我正在开发基于 3 个字段的小型过滤器。我还在我的 MVC 3 项目中使用 MySQL 连接器。
我找到了一个漂亮的 PredicateBuilder http://www.albahari.com/nutshell/predicatebuilder.aspx。但它似乎不适用于 MySQL
但result包含 0 个元素。为什么 ?
lucene - RavenDB 和 PredicateBuilder
是否可以使用 PredicateBuilder 类来构建 RavenDB 可以解释和使用的 WHERE 子句?我尝试过 session.Query() 和 LuceneQuery,但它们都失败了:
这是 session.Query() 尝试:
这是运行时错误:
Lucene.Net.QueryParsers.ParseException:无法解析'(OR)OR':在第1行第2列遇到“”OR“”。期待以下之一:(此处的预期项目列表)。
如果我尝试 LuceneQuery():
我得到这个编译时错误:
错误 2 'Raven.Client.IDocumentQueryBase>.Where(System.Func)' 已过时:'您不能在 IDocumentQuery 上发出内存过滤器 - 例如 Where(x=>x.Name == "Ayende")。
编辑:这是第一个示例中 whereClause 的样子:
{f => ((False OrElse Invoke(x => (Convert(x).EquipmentId == value(ReadFromRaven.Logic.Readers.RavenReader 1+<>c__DisplayClassa[WriteToRaven.Data.Marker]).tempCoater.MarkerEquipmentId), f)) OrElse Invoke(x => (Convert(x).EquipmentId == value(ReadFromRaven.Logic.Readers.RavenReader1+<>c__DisplayClassa[WriteToRaven.Data.Marker]).tempCoater.MarkerEquipmentId), F))}
编辑 2:这就是我构建 WHERE 子句的方式
这是电话:
这是 BuildWhereClause() 方法签名和重要的方法部分:
c# - PredicateBuilder 可重用的 DateTime 谓词设置器
我正在使用PredicateBuilder生成动态搜索子句。在下面的示例代码中,有没有一种方法可以修改SetDateTimePredicate,以便将其用于任何DateTime属性SomeType?
我尝试了一种扩展方法,但得到了这个错误:
扩展方法:
带有扩展方法的示例:
c# - MVC 3 中的谓词生成器
我已经用 Predicate Builder 搞砸了两天了,尽管每个网站都说由于某种原因它非常容易实现(很可能是我的错),但我无法让它工作。我决定使用谓词生成器,因为我知道我想搜索哪些列,并且它们都在同一个表中。我要做的就是在多个列中搜索可能存在于 3 列中的任何一个中的关键字。我读过 Predicate Builder 可以轻松完成此操作,但教程显然没有考虑到我。以下是我到目前为止所拥有的,如果有人能指出我正确的方向,我将不胜感激。现在当我搜索时它什么也没做,它只是返回所有记录。谢谢你的帮助!
entity-framework-4 - 无法使用 LINQ to Entities 和 LinqKit / PredicateBuilder 重构
我一直在尝试将 LINQ 表达式重构为方法,并且遇到了“ Internal .NET Framework Data Provider error 1025.”和“ The parameter 'xyz' was not bound in the specified LINQ to Entities query expression.”异常。
以下是实体模型的相关部分(使用 EF 4.2 / LINQ to Entities):
基本的关系模型是这样的:
我正在尝试创建一个查询,当给定 search 时,它将term尝试查找以OR开头的Place实体,其具有who或以 search 开头。(不是我遇到问题的地方,尽管它是查询的一部分,因为s 应该只匹配。)OfficialNametermPlaceNameTextAsciiEquivalenttermLanguagePlaceNameCultureInfo.CurrentUICulture.TwoLetterIsoLanguageName
以下代码确实有效:
我接下来要做的是重构NonOfficialNameMatches方法以将name => ...表达式提取到单独的方法中,以便其他查询可以重用它。这是我尝试过的一个示例,它不起作用并引发异常“ The parameter 'place' was not bound in the specified LINQ to Entities query expression.”:
当我没有.AsExpandable()链时NonOfficialNameMatches,我会得到“ Internal .NET Framework Data Provider error 1025.”异常。
我在这里遵循了其他建议,例如调用.Expand()谓词的几种组合,但总是以上述异常之一结束。
甚至可以使用带有 LinqKit / PredicateBuilder 的 LINQ to Entities 将此表达式分解为单独的方法吗?如果是这样,怎么做?我究竟做错了什么?
predicatebuilder - PredicateBuilder where 子句问题
我正在使用 PredicateBuilder 生成 where 子句
我收到以下错误,任何人都可以为此提供帮助,或者我做错了什么。
实例参数:无法从“System.Data.Linq.EntitySet”转换为“System.Linq.IQueryable”
linq - Linq PredicateBuilder 多条件
如何 PredicateBuilder 多标准?
linq - 使用 PredicateBuilder 创建一个独立的布尔表达式
我试图弄清楚如何使用 PredicateBuilder 来确定一组特定的记录是否全部存在于一个表达式中。因此,给定一个 OrderId 和一个 ProductIds 列表作为规范,我想知道 Order 的 OrderDetail 记录是否包含所有规范项。不只是其中一个或一些——而是所有这些。
所以我可以这样做:
但是,在得到结果之后,我必须 a) 消除重复项(因为在我的情况下,多个 OrderDetails 可以具有相同的 ProductId),然后 b) 将结果计数与规范计数进行比较。所有这些在表达式之外都是可行的,但是有没有一种优雅的方法来评估表达式中的所有内容,使得结果是布尔值?
也就是说,我希望表达式是自包含的,以便它可以按原样传递,而我给它的那些不必知道如何进行“后期处理”来确定它是否真实.
c# - 如何简化 LINQ to WCF 数据服务中的组合谓词?
我正在使用PredicateBuilder和Colin Meek 的等价物以 WCF 数据服务友好(即没有调用表达式等)的方式编写谓词。这些适用于某些查询,但随着查询复杂性的增加,“递归达到允许的限制”失败。不幸的是,这个限制低于我在代码中正常情况下的预期。我也无法事先确定何时达到此限制。
有可能:
- 在访问 WCF 数据服务之前简化谓词?
- 确定查询复杂性何时超过 WCF 数据服务的限制?
在我的代码中,我正在为接受“州”和“城市”参数的 Azure 数据市场服务构建谓词。我没有为每个城市*州配对发出调用,而是按照以下方式编写谓词:
由于表达式树,实际上谓词会更像这样:
使用 LINQPad,我可以捕获请求,手动简化它并证明这些工作一旦简化。因为我的代码没有尝试简化,所以命中 Azure 数据服务的 OData 查询过于复杂/递归并生成异常。在上面的概述中,我应用了诸如 (x 或 y) 或 z == x 或 y 或 z 之类的简化,这具有充分降低查询复杂性以使其通过集合的效果。因此我上面的两个问题。
任何帮助/指针将不胜感激!
c# - 即使添加了明确的错误语句,PredicateBuilder 仍然为真
我有以下声明。
起初,我在尝试一种表达方式;没有成功,所以我尝试了这个“假”。不管我做了什么,它仍然是一样的。怎么了?