我正在使用Breeze进行SPA应用。后端数据来自访问API(而不是EF)。
我将“任务”公开为可查询集合。
在某些情况下,我想通过Id请求单个任务。 OData过滤器将被发送到服务器,但随后Breeze必须查询数据库中的所有任务,然后应用过滤器。
有没有办法拦截OData过滤器,并获得所请求的单个记录?
由于
答案 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 子句混合使用。
希望这有帮助。