in " with Breeze js Is it possible to execute an "IN" query with Breeze? I am using En...">

Is it possible to execute query "where <property> in <set>" with Breeze js

Is it possible to execute an "IN" query with Breeze?

I am using Entity Framework and I have an Order object and it has a UserId property:

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

    public long UserId { get; set; }

    // ... other properties

}

      

I have a controller that will return Orders in an IQueryable:

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

      

Where "Db" is my EF context. I would like to get orders where the UserId property is in the user ids set, ie [1,4,78] or any other set.

I cannot figure out if this is possible, and if so, how? i.e:

var userIds = [1,4,78];

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

      

+3


source to share


1 answer


Try doing something like this:



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

      

+2


source







All Articles