是否可以使用Breeze js </set> </property>执行“<set>”中的where <property>查询

时间:2014-09-22 14:03:28

标签: c# entity-framework odata breeze

是否可以进行&#34; IN&#34;用Breeze查询?

我正在使用Entity Framework,我有一个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);
}

在哪里&#39; Db&#39;是我的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( 
       // ...

1 个答案:

答案 0 :(得分: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();