1

我正在将 Breeze 用于 SPA 应用程序。后端数据来自访问 API(不是 EF)。

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

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

有没有办法拦截 OData 过滤器,然后自己获取请求的单个记录?

谢谢

4

1 回答 1

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子句混合和匹配。

希望这可以帮助。

于 2013-06-19T17:03:38.490 回答