Breeze可以通過使用多個where
語句來查詢condition1 AND condition2。但它可以查詢條件1或條件2嗎?在where方法中輕鬆實現'AND'和'OR'
如果不是,使用Breeze時達到相同效果的推薦方式是什麼?
我目前認爲唯一的方法是在服務器上用特殊的操作方法執行查詢,這會產生一些問題。
Breeze可以通過使用多個where
語句來查詢condition1 AND condition2。但它可以查詢條件1或條件2嗎?在where方法中輕鬆實現'AND'和'OR'
如果不是,使用Breeze時達到相同效果的推薦方式是什麼?
我目前認爲唯一的方法是在服務器上用特殊的操作方法執行查詢,這會產生一些問題。
OK,問題是微風API和文檔是一個小一些錯別字缺乏。
答案是使用Predicate類的'或'方法創建一個傳遞給where
方法的新Predicate對象。
鑑於3個斷言你 '或' 在一起,像這樣:
var newPred = p1.or(p2, p3);
或
var preds = [p2, p3];
var newPred = p1.or(preds);
或流利的方法:
var p4 = Predicate.create("ShipCity", "startswith", "F")
.or("Size", "gt", 2000);
或使用靜態 '或' 方法
var newPred = Predicate.or(p1, p2, p3);
使用謂詞這樣的例子:
var p1 = new breeze.Predicate("IsArchived", "==", false);
var p2 = breeze.Predicate("IsDone", "==", false);
var predicate = p1.and(p2);
var query = new EntityQuery("Todos").where(predicate);
文檔可以在這裏找到: http://www.breezejs.com/documentation/query-filter
+1原因指向Predicate類的方法。但是錯誤的方法。 – david004
嗨david004 - 你可以指出錯別字,以便我們修復它們嗎?我不明白他們在哪裏。謝謝! – Ting
Sure Ting。 '或(謂詞)'方法(非靜態)的API有一些使用'和'方法的例子。文檔/查詢過濾器頁面上根本沒有提及'或'方法。 – david004
很酷。謝謝!我在「使用過濾器查詢」頁面上提到了其他操作員,API文檔將在1.3.5之後的版本中更新。 – Ting