OData - Breeze - 自定义查询

时间:2013-06-19 16:04:07

标签: asp.net-mvc-4 odata breeze

我正在使用Breeze进行SPA应用。后端数据来自访问API(而不是EF)。

我将“任务”公开为可查询集合。

在某些情况下,我想通过Id请求单个任务。 OData过滤器将被发送到服务器,但随后Breeze必须查询数据库中的所有任务,然后应用过滤器。

有没有办法拦截OData过滤器,并获得所请求的单个记录?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用Breeze EntityQuery.withParameters 方法。

// Client
var query = new EntityQuery("GetTaskById").withParameters( { "taskId": 126 });
myEntityManager.executeQuery(query).then(...)

// Server
[HttpGet]
public Task GetTaskById(int taskId) {
   // your task code.
}

请注意,您可以返回标量结果或IQueryable,这意味着您还可以将 EntityQuery.where 子句与 EntityQuery.withParameter 子句混合使用。

希望这有帮助。