如何从Breeze Query中删除项目

时间:2013-10-14 10:14:05

标签: breeze

我有一个非常简单的问题,但我还不知道如何用Breeze做到这一点。 我有一系列ID,我想从Breeze Query中排除这些ID。在SQL中,我会做

SELECT *
FROM Items
WHERE ID NOT IN [...Array...]

我如何对Breeze做同样的事情?是否有操作员执行此操作,或者如何手动执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以在Breeze查询中添加多个谓词。小心这样添加太多,但这是我们如何做到这一点的完美例子 -

function getAllTodos(todoIds) {
    var Predicate = breeze.Predicate;
    var query = breeze.EntityQuery
            .from("Todos")
            .orderBy("CreatedAt");

    var compoundPredicates;
    if (todoIds) {
        var criteriaPredicate;
        $.each(todoIds(), function(index, item) {
            criteriaPredicate = (index === 0)
                ? Predicate.create('todoId', '!=', item)
                : criteriaPredicate.or('todoId', '!=', item);
            if (Predicate.isPredicate(criteriaPredicate)) {
                compoundPredicates = compoundPredicates.and(criteriaPredicate);
            }
        }
    }
}

这个(或类似的东西)允许你将谓词组合在一起并得到所有todo,其中ID不等于数组中的值。