2013-06-01 138 views
0

我有以下型號:BreezeJS查詢和過濾器通過實體集合實體

 
Products (DbSet<Product>) 
ProductHasWidgets (DbSet<ProductHasWidget> many-to-many w/ payload) 
Widgets (DbSet<Widget>) 

我不讓自己被越過和/或從衆多一對多表,有兩個問題詢問:

我怎樣寫一件輕而易舉的查詢返回的所有產品,其中:

  1. Widget.IsActive == true
  2. ProductHasWidgets.WidgetId == 1

回答

1

您不能從Breeze客戶端那樣做,因爲Breeze目前不支持any關鍵字。

您可以編寫一個服務方法在服務器上執行查詢。客戶端可以使用BreezeJS withParameters查詢動詞將查詢參數傳遞給該方法。

+0

完美!感謝病房!我發現這個鏈接顯示了一個工作示例 - 對於其他人尋找這個答案。 – user1265146

0

從Breeze 1.4.6開始,Breeze現在支持「任意」和「全部」查詢。請參閱:http://www.breezejs.com/documentation/query-examples

根據你的模型,這意味着你的查詢看起來是這樣的:

var predicate = breeze.Predicate.create("WidgetId", "==" 1) 
    .and("Widget.IsActive", "==", true); 
var query = EntityQuery.from("Products") 
    .where("ProductHasWidgets", "any", predicate);