简体   繁体   English

轻松查询返回结果

[英]query against returned results in breeze

I would like to query against returned result, but when I use the following code, it throws an error: 我想查询返回的结果,但是当我使用以下代码时,它将引发错误:

 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); }); 

Error I get is: 我得到的错误是:

Uncaught Error: Cannot find an entityType for resourceName: 'Customer'. 未捕获的错误:找不到resourceName:“客户”的EntityType。 Consider adding an 'EntityQuery.toType' call to your query or calling the MetadataStore.setEntityTypeForResourceName method to register an entityType for this resourceName. 考虑将“ EntityQuery.toType”调用添加到查询中,或调用MetadataStore.setEntityTypeForResourceName方法为该resourceName注册一个EntityType。

I can see results are coming back when serverQuery is executed, but it doesn't like how I try to query against the returned results. 我可以看到在执行serverQuery时结果又回来了,但是它不喜欢我尝试对返回的结果进行查询。 I know I can get results by running localQuery through api call first time, but I want to get all customers (probably need to filter in some degree) first from the server then filter those customers when user enter, for example, customer's name, in an input field so that it won't try to fetch data from the server every time user changes customer name in that field. 我知道我可以通过第一次通过api调用运行localQuery来获得结果,但是我想首先从服务器中获取所有客户(可能需要进行某种程度的过滤),然后在用户输入(例如,客户名称)时过滤这些客户一个输入字段,以便用户每次在该字段中更改客户名称时,它都不会尝试从服务器获取数据。 Most likely I am doing something wrong in the code above, but is it possible to do it with breeze? 我很可能在上面的代码中做错了什么,但是是否可以轻而易举地做到呢?

Ok, I don't know if this is the best way to do it but this code seems to work: 好的,我不知道这是否是最好的方法,但是这段代码似乎有效:

 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); }); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM