【问题标题】:breeze.js mixing AND and OR predicates微风.js 混合 AND 和 OR 谓词
【发布时间】:2014-03-06 22:03:48
【问题描述】:

在混合 AND 和 OR 谓词时,我正在尝试为微风.js 配置正确的语法。我在微风网站上没有看到示例,在其他任何地方都找不到。

基本上我想在我的 WHERE 子句中做这样的事情:

(
age > 30  AND
sex == 'M' AND
jobStartDate >= '1/1/2000'
)

OR

(
exemptStatus == 1
)

这将带回符合 3 个条件或被豁免的实体。我正在使用带有 ODATA 语法的 EF6。

谢谢

【问题讨论】:

标签: breeze mixing predicates


【解决方案1】:

试试这个:

    var Predicate = breeze.Predicate;
    var baseQuery = EntityQuery.from("Something");
    var pred1 = new Predicate("age", ">", 30);
    var pred2 = new Predicate("sex", "==", 'M');
    var pred3 = new Predicate("jobStartDate", ">=", new Date(2000,1,1));
    var pred4 = new Predicate("exemptStatus", "==", 1);
    var compositePred = pred1.and(pred2).and(pred3).or(pred4);
    var query = baseQuery.where(compositePredicate);
    myEntityManager.executeQuery(query);

    var compositePred = Predicate.and(pred1, pred2, pred3).or(pred4);

【讨论】:

  • 我不知道为什么我的初始版本没有正确地将 AND 组合在一起,但是您的示例效果很好。谢谢。
  • 你好创意刀片。你们在想一个更好的方法来添加谓词吗?这是冗长而痛苦的。您可以在一个语句中在 c# linq 中执行此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
  • 2021-01-19
  • 2014-08-10
相关资源
最近更新 更多