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 to share