SPA - BreezeJS - 实体框架 - 谓词错误

时间:2014-11-18 18:12:42

标签: entity-framework knockout.js breeze durandal single-page-application

如果已经回答道歉,我是使用Durandal,Knockout和BreezeJS的SPA应用程序的新手 - 实体框架和Stackoverflow的全新产品。下面的代码是给出错误的原因。 p2是我添加的新代码行。如果删除该谓词,查询工作正常。但是,我需要此查询来过滤扩展表ideaComments。

    var p1 = breeze.Predicate.create('ideaId', 'eq', ideaId);
    var p2 = breeze.Predicate.create('ideaComments.isAdminComment', '==', false);
    var predicate = breeze.Predicate.and([p1, p2]);

    var query = EntityQuery.from('Ideas')
        .expand(['ideaComments', 'ideaStatus'])
        .where(predicate);

正在给出的错误如下:

检索数据时出错。属性的属性访问的父值' IsAdminComment'不是单一的价值。属性访问只能应用于单个值。

提前感谢您的帮助。 : - )

1 个答案:

答案 0 :(得分:2)

假设一个想法有0..N想法 - 评论,你需要像这样使用 the any/all filter operator

var p2 = breeze.Predicate.create('ideaComments', 'any', 'isAdminComment', '==', false);

或者这个:

var p2 = breeze.Predicate.create('ideaComments', 'all', 'isAdminComment', '==', false);