2013-06-02 24 views
1

Breeze可以通過使用多個where語句來查詢condition1 AND condition2。但它可以查詢條件1或條件2嗎?在where方法中輕鬆實現'AND'和'OR'

如果不是,使用Breeze時達到相同效果的推薦方式是什麼?

我目前認爲唯一的方法是在服務器上用特殊的操作方法執行查詢,這會產生一些問題。

回答

2

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); 
+0

嗨david004 - 你可以指出錯別字,以便我們修復它們嗎?我不明白他們在哪裏。謝謝! – Ting

+0

Sure Ting。 '或(謂詞)'方法(非靜態)的API有一些使用'和'方法的例子。文檔/查詢過濾器頁面上根本沒有提及'或'方法。 – david004

+0

很酷。謝謝!我在「使用過濾器查詢」頁面上提到了其他操作員,API文檔將在1.3.5之後的版本中更新。 – Ting

2

使用謂詞這樣的例子:

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

+0

+1原因指向Predicate類的方法。但是錯誤的方法。 – david004

相關問題