问题标签 [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.
linq-to-entities - EF5 中的动态谓词构建
好的,
我必须构建一个谓词以从 EF5 中的已知实体中选择未知数量的列,并按未知数量的列进行过滤,其中一个始终是来自子集合的名称。
所以这就是我需要结束的
但我不确定如何为表达式构建谓词
要选择的列和要过滤的字段以字符串数组的形式提供,在这种情况下,过滤器始终包含。
我熟悉构建谓词,这不是问题,更重要的是我以前从未研究过子集合,而且我现在完全处于“WTF”点:-)
朝着正确方向的任何和所有推动都将是最受关注的。
c# - 使用 Linq 搜索实体列表中是否存在所有属性
我有以下实体:
和标签实体:
如上所述,标签不被重用,只是作为字符串存储。这使得确定实体是否共享标签更加困难(并且速度较慢)。
我有一个有效的搜索来返回一个实体列表,其中实体包含任何标签:
现在我还需要返回一个包含列表中所有标签的实体列表。由于不能将非属性变量传递给 Contains 方法,因此我不能只用 all 反转调用的顺序,但这基本上是我想要实现的目标:
我想我已经到了需要更正数据库模式以重用标签的地步,这在过滤标签列表中的实体时应该提供一般性能优势,但我仍然想问以下问题:
- 我是否过于复杂化了,是否有一个简单的 Linq 语句可以完成这个,或者,
- 这是我应该使用谓词构建器来设置我的标准的东西吗?
c# - LinqKit PredicateBuilder 返回所有行或非行
我开始使用LinqKit的PredicateBuilder来创建带有 OR 条件的谓词,这在 Linq 表达式中是不可能的。
我面临的问题是,如果我从PredicateBuilder.True<MyEntity>()
它开始返回所有行,如果我从PredicateBuilder.False<MyEntity>()
它开始返回非行,除了我使用的表达式!看下面的代码:
它应该返回具有 IsActive == true 的行,但它会返回所有行!
我已经尝试了PredicateBuilder.True
|的所有可能组合。PredicateBuilder.False
与And
| Or
方法,没有一个有效!
c#-4.0 - 有人可以进一步解释这个 C# 代码吗
我正在使用来自http://www.albahari.com/nutshell/predicatebuilder.aspx的 PredicateBuilder 类
此扩展方法使用 OR 运算符链接谓词。在页面上,解释说
我们首先使用第一个表达式的参数调用第二个表达式。Invoke 表达式使用给定的表达式作为参数调用另一个 lambda 表达式。我们可以从第一个表达式的主体和第二个表达式的调用版本创建条件表达式。最后一步是将其包装在一个新的 lambda 表达式中。
所以如果例如我有
我不太明白解释。有人可以解释一下上面扩展方法的代码是如何工作的吗?谢谢
.net - 如何使用 Ideablade 谓词描述在 where 子句中添加多个 And 和 Or
我们如何在ideablade的谓词描述的where子句中添加多个Or和And运算。前任。
如上所述,我尝试在中添加 Or 运算符CompositePredicateDescription
,但它不起作用
我想运行以下查询 -
Select * from Tabel1 where t.field1=1 and t.field2=1 and t.field3=1 Or ( t.field4=1 and t.field5=1) Or (t.field6=1 and t.field7=1)
如何使用ideablade 运行以上查询。
c# - List 上的动态 Linq 查询使用谓词生成器
我正在使用 C# 2010 .NET 4.0,并且我有一个List<T>
名为的集合returns
,我需要在其上构建动态 LINQ 查询。
我正在使用此处引用的谓词生成器。
如果我有 1 个过滤条件,这可以正常工作,但如果我有 2 个或更多,那么,当query.compile()
被调用时,我会收到此错误:
从范围“”引用了“Check21Tools.IncomingReturn”类型的变量“tmp”,但未定义
代码:
代码:
c# - 谓词构建器组和/或带有内部外部的查询
我有一个非常简单的谓词构建器查询,效果很好。我们有一个要搜索的关键字列表,我们遍历这些关键字以查看我们的任何对象属性是否匹配。
...我做的更进一步:
我得到了我需要的东西 - 只过滤那些我搜索过的关键字。
我需要更改它,以便在我的实体的某个属性中查找所有关键字。所以“notes”字段必须包含正在搜索的每个关键字,或者“description”字段必须包含正在搜索的所有关键字。我认为这涉及内部/外部谓词,但我无法想出它。我尝试过的结果太多了,它应该只给我一个……其他实体不符合标准。我的问题明显吗?我的关键字(其中 6 个)非常独特,我得到了 600 多个项目而不是 1...
然后我做我的:
而且我得到的结果太多,谓词是正确的。
c# - 在 C# 中是否有一种优雅的方式将方差应用于 lambda 表达式?
我的应用程序使用 Predicate Builder 促进了多标准搜索。假设这些标准之一允许用户指定他们想要在房子里有多少个浴室。
我可以使用 Predicate Builder 并从具有与用户指定的卧室数量相等的数据库房屋中检索:
假设我想返回用户输入的带有多个浴室 +/- 1 的房屋。因此,如果输入 2,将应用具有 1、2 和 3 浴室的房屋。
以下是可以实现的唯一方法吗?
或者上述甚至可以工作?
c# - 将字典与 PredicateBuilder 一起使用?
我有一个Dictionary<string,object>
。search terms and values
在这种情况下term
是key
. 一个例子是:
我正在使用PredicateBuilder
来构建Where
子句并且它可以工作,但我想知道是否有更简洁的方法来做到这一点,而不是Dictionary
必须调用? 这就是我现在的做法:if(args.ContainsKey(...)
search term
Dictionary
另外,如果我在 , 之外声明,string name
但在这种情况下有关系吗?例如if block
resharper
Access to modified closure
但是在上面,我没有name
在任何地方修改,为什么它会告诉我这个?
我是 PredicateBuilder 的新手,所以如果有人解释什么PredicateBuilder.False<Person>()
是相对的意思PredicateBuilder.True<Person>()
以及该Compile
方法的作用是什么?
c# - PredicateBuilder 之间的区别和谓词生成器?
我有代码:
如果我有PredicateBuilder.True<Value>()
,它会带回我所期望的,但如果我有PredicateBuilder.False<Value>()
,它会带回 0 条记录。有人可以解释区别是什么以及为什么在一种情况下我得到 0 条记录,而在另一种情况下我得到了我所期望的。我已经阅读了PredicateBuilder
文档,但这有点令人困惑。我有一种感觉,这与我是Anding
谓词在一起的事实有关吗?