2014-09-22 4 views
3

으로 "을 "으로 쿼리 할 수 ​​있습니까? Breeze로 "IN"쿼리를 수행 할 수 있습니까? Breeze js에서

내가 엔티티 프레임 워크를 사용하고 있으며, 주문 개체가 있으며 사용자 ID 속성이 있습니다

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 속성이 [1,4,78] 또는 다른 세트와 같은 사용자 ID 집합에있는 주문을 받고 싶습니다.

가능한 경우 해결할 수 없습니까? 그렇다면 어떻게 될까요? 즉 :

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() –

+0

을 수정 한 매력이 있습니다. OData 쿼리 구문이 "in"절을 지원하기를 바랍니다. 그것은하지 않는다. – Ward