我想查询返回的结果,但是当我使用下面的代码时,它会抛出一个错误:
let em = new breeze.EntityManager('api/customer');
let serverQuery = breeze.EntityQuery.from('Customer');
let localQuery = breeze.EntityQuery.from('Customer').where('Id', '==', '1');
em.executeQuery(serverQuery)
.then(data => {
let localData = data.entityManager.executeQueryLocally(localQuery); //error
})
.catch(error => {
console.log(error);
});
我得到的错误是:
未捕获错误:无法找到resourceName的entityType:'Customer'。考虑向查询添加“EntityQuery.toType”调用,或调用MetadataStore.setEntityTypeForResourceName方法为此resourceName注册entityType。
我可以看到执行serverQuery时会返回结果,但它不喜欢我尝试查询返回的结果。 我知道我可以通过第一次通过api调用运行localQuery来获得结果,但我希望首先从服务器获取所有客户(可能需要在某种程度上过滤),然后在用户输入时过滤这些客户,例如,客户的姓名,每次用户更改该字段中的客户名称时,它都不会尝试从服务器获取数据。我很可能在上面的代码中做错了,但是有可能用微风来做吗?
答案 0 :(得分:0)
好的,我不知道这是否是最好的方法,但这段代码似乎有效:
let em = new breeze.EntityManager('api/customer');
let serverQuery = breeze.EntityQuery.from('Customer').toType('Customer');
em.executeQuery(serverQuery)
.then(data => {
let localData = data.query.where('id', '==', '1').using(em).executeLocally(); //works!
})
.catch(error => {
console.log(error);
});