如果已经回答道歉,我是使用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'不是单一的价值。属性访问只能应用于单个值。
提前感谢您的帮助。 : - )
答案 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);