是否可以使用 Breeze 进行“IN”查询?
我正在使用 Entity Framework ,我有一个 Order 对象,它有一个 UserId 属性:
public class Order
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public long UserId { get; set; }
// ... other properties
}
我有一个 Controller ,它将在 IQueryable 中返回订单:
[HttpGet]
public IQueryable<Order> Orders()
{
return Db.Orders.OrderByDescending(o => o.Id);
}
其中 'Db' 是我的 EF 上下文。我想获得 UserId 属性在一组用户 ID 中的订单,即 [1,4,78] 或任何其他集合。
我无法确定是否可能,如果可能,如何解决? IE:
var userIds = [1,4,78];
breeze.EntityQuery
.from("Orders")
.using(this.manager)
//.where("userId", "any", userIds) // this isn't right
.execute()
.then(
// ...
最佳答案
尝试做这样的事情:
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();