c# - 是否可以使用 Breeze js 进行 "where <property> in <set>"查询

标签 c# entity-framework odata breeze

是否可以使用 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] 或任何其他集合。

我不知道这是否可能,如果可能的话如何?即:

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

关于c# - 是否可以使用 Breeze js 进行 "where <property> in <set>"查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25976041/

相关文章:

具有多个命名空间的 ODataConventionModelBuilder

c# - OData v4.0 - 将值更改为结果

c# - 使用 OData 在 .NET API 上返回嵌套对象

c# - 为什么 PetaPoco 从 db.Insert 一个 ID 字段 7 作为十进制返回

c# - 如何将对象转换为泛型?

c# - 多对多按关系计数排序( Entity Framework ,Linq)

c# - 对所有实体使用全局查询过滤器

Oracle ODP.NET Entity Framework 返回空结果

c# - 如何访问 Azure API 管理中设置变量策略中的请求正文?

c# - 如何使用 SQLite-net 为 SQLite 中的列设置默认值?