是否可以进行" IN"用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(
// ...
答案 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();