typescript - BreezeJS - 如何编写复杂的查询?

标签 typescript breeze jaydata

如何使用 BreezeJS + OData 或 WebAPI 编写复杂查询?我希望能够在 JayData 中使用 Northwind 作为引用数据库做这样的事情?我的问题是我不知道如何表达同时引用数据库(而不是与常量相比的字段)并且具有复杂逻辑树(a || (b && c))的查询?

context.Products.filter(function(product) {
   return (product.Unit_Price < product.Category.BudgetPriceLimit) || 
   (product.Category.IsOnSale && product.Supplier.IsFavored)
}).toArray(...)

我的另一个问题是关于 TypeScript + 查询。如何使用箭头函数对 BreezeJS 进行查询?所以有一种方法可以代替表达式构建器:

query(Product => Product.Unit_Price < Product.Category.BudgetPriceLimit)

感谢您的帮助,抱歉,如果这些问题很明显。

最佳答案

这篇文章已经过编辑以纠正我的错误以及从 v 0. 77.1 开始添加到 breeze 的新功能。

好问题!

Breeze 现在支持跨属性查询表达式(从 v 0.77.1 开始),例如:

var shippedLateQuery = EntityQuery.from("Orders")
                                  .where("requiredDate",">","shippedDate");

第三个参数(上面的“shippedDate”)将根据上下文被视为属性表达式或文字。通常,如果值可以被解释为属性表达式,否则它将被视为文字。在大多数情况下这很有效,但您也可以强制解释。有关详细信息,请参阅 API 文档。

组合复杂查询,即 ( a || (b && c)),轻而易举地通过谓词完成。这里有一些很好的例子:

Query Examples - see the Compound Conditions with Predicates topics

此外,第一个 Breeze 教程在这里:Tutorial还可以让您试用这些功能(请参阅第 5 步)。

我们正在积极关注 Typescript 并计划全面启用它,但我们仍处于该过程的早期阶段。

更新:从 v 0.84.4 开始,Breeze 提供完整的 TypeScript 支持。

关于typescript - BreezeJS - 如何编写复杂的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13838975/

相关文章:

breeze - breeze.js 中的服务器端验证和安全性

javascript - Q.all 用于解决一系列 promise

javascript - IndexedDb - 检查表是否存在并包含数据

node.js - o使用 Nodejs、jaydata 和 MongoDB 的数据服务器

javascript - Jaydata Planet 示例抛出 DefaultError : DEFAULT ERROR CALLBACK

node.js - angular2 - 使用路由器发出

javascript - 如何将Promise.all改成一个一个发送请求

typescript - 如何在我的 Typescript React Native 项目中获取 fetch 函数的类型定义?

typescript - 在 TypeScript 中使用重载或可选参数有什么区别吗?

breeze - 在 Breeze 中创建复杂类型的未绑定(bind)实例的正确方法是什么?