2014-02-14 4 views
2

Я начинающий на Бриз и имею проблему со следующей ситуацией У меня есть следующая модель. Объект Person может иметь несколько назначенных проектов. Проект может иметь несколько задач. И каждая задача имеет приоритет. Я хотел бы получить все Лица, у которых есть хотя бы один Проект, у которого есть хотя бы одна Задача с Приоритетным кодом «Высокий».Предикат бриза на нескольких уровнях детей

Я нашел, что я могу использовать «any» или «some» для работы с детьми второго уровня.

var p1 = new breeze.Predicate.create('projects', 'some', 'client.code', 'Equals', 'ABC'); 

Вышесказанное правильно возвращает лиц с проектами для клиентов с кодом ABC. Но в моем случае я должен был бы применить «любой» один уровень в глубину, также к задачам, и я не могу найти правильный способ сделать это. Спасибо за любую помощь

ответ

4

Вы можете вкладывать множественным любые/все, используя этот синтаксис:

var query = breeze.EntityQuery.from('persons') 
var p = new breeze.Predicate('projects', 'any', new breeze.Predicate('tasks','any','priority','>',1)); 
query = query.where(p); 

Вы должны изменить MaxAnyAllExpressionDepth свойство вашего контроллера, чтобы несколько любого уровня:

[BreezeNHController(MaxAnyAllExpressionDepth = 5)] 
Смежные вопросы