0

使用微风 1.3.5

按照“ Chai 的订单”示例,我尝试形成一个类似的查询。但是,我发现当resourceName包含“?”时,其他OData参数没有正确添加。例如,如果我执行以下操作:

var query = new breeze.EntityQuery('Products/?categoryId=1234')
            .top(10);

它发送如下所示的请求:

http://domain/controller/Products/?categoryId=1234?$top=10

? $top 应该是& $top

因为' ? ' 代替 ' & ',我的上下文控制器得到一个明显无效的 categoryId,如下所示:

1234?$top=10

我做错了什么还是这只是一个缺陷?任何想法或解决方法将不胜感激!谢谢!

4

1 回答 1

0

对于 Breeze,resourceName(EntityQuery 中的 'from' 子句的值)是DataService.serviceName之后和“?”之前的所有内容。

正如您所发现的,您可以通过EntityQuery.withParameters方法传递任何参数(即 ? 之后的内容)。EntityQuery 的“where”、“top”、“skip”、“select”、“expand”等子句也作为参数传递。

这都是设计使然,不应该任何 url 不能用这些规则构建。

回顾一下,一个微风查询 url 看起来像

{serviceName}/{resourceName}?{参数 - 用“&”分隔}

在哪里

{serviceName}:  DataService.serviceName
{resourceName}: value of EntityQuery.from clause
{parameters}:   serialized and & delimited value of the rest of the EntityQuery including any withParameter values.
于 2013-06-11T19:37:36.210 回答