【发布时间】:2012-11-30 02:39:40
【问题描述】:
如何使用 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)
感谢您的帮助,如果这些问题很明显,我们深表歉意。
【问题讨论】:
-
几周后,我们将发布 Breeze 的 JayData 提供程序。有了这个提供商,您将能够两全其美:从 Breeze Web API 服务器端受益,JayData 通过 JSLQ 和 TypeScript 支持提供客户端体验。
-
BreezeJS 的 JayData 提供程序很好,为什么?
-
您将能够扩展您的 Web API 代码,使其具有元数据。这就是微风在服务器端所做的(除其他外)。之后,您可以使用 JayData 按照您描述的方式表达查询,您还可以获得对实体和查询的 TypeScript 智能感知支持。您也可以将本地数据存储与相同的 API 一起使用。
-
我欢迎 JayData 参加聚会。如果 JayData 在他们的 JSLQ 中为 @BigJ.Lee 要求的数据值比较提供语法,我无法从这个回复中判断出来。目前,此类比较不在 OData 规范中 AFAIK。在查询子句中接受函数是我们一直在考虑的事情。如果您认为这很重要,请vote for it in User Voice。
-
从 v 0.84.4 开始,breeze 通过一个 'breeze.d.ts' 文件提供完整的 TypeScript 支持,该文件位于微风网站上,位于微风 zips 中找到 here。
标签: typescript breeze jaydata