2014-09-22 37 views
3

是否有可能使用Breeze做「IN」查詢?是否有可能做一個「Where <property> in <set>」查詢Breeze js

我使用實體框架和我有一個Order對象,它有一個UserID屬性:

public class Order 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public long Id { get; set; } 

    public long UserId { get; set; } 

    // ... other properties 

} 

我有一個控制器,將在一個IQueryable返回訂單:

[HttpGet] 
public IQueryable<Order> Orders() 
{ 
    return Db.Orders.OrderByDescending(o => o.Id); 
} 

在哪裏Db'是我的EF上下文。我想獲得UserId屬性在一組用戶ID中的訂單,即[1,4,78]或任何其他集合。

我不能解決,如果有可能,如果是這樣的話?即:

var userIds = [1,4,78]; 

breeze.EntityQuery 
    .from("Orders") 
    .using(this.manager) 
    //.where("userId", "any", userIds) // this isn't right 
    .execute() 
    .then( 
     // ... 

回答

2

嘗試做這樣的事情:

var userIds = [1, 4, 78]; 

    var predicate = breeze.Predicate("userId", "==", userIds[0]); 
    for (var i = 1; i < userIds.length; i++) { 
     var userId = userIds[i]; 
     predicate = predicate.or(breeze.Predicate("userId", "==", userId)); 
    } 

    breeze.EntityQuery 
     .from("Orders") 
     .using(this.manager) 
     .where(predicate) 
     .execute(); 
+0

嘿!我覺得很愚蠢,我並不認爲這樣做是因爲我被卡在尋找一個「IN」操作符。這就像一個魅力與小修改,它是breeze.Predicate.create() – 2014-09-22 14:35:48

+0

我們希望OData查詢語法支持「in」子句;它沒有 – Ward 2014-09-22 21:37:41

相關問題