Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
breeze:使用客户端模型时查询本地缓存_Breeze - Fatal编程技术网

breeze:使用客户端模型时查询本地缓存

breeze:使用客户端模型时查询本地缓存,breeze,Breeze,考虑下面的代码。从服务器获取数据时,它工作正常。我有一个自定义数据适配器(staffManagemetnService),它从服务器返回的json创建客户端实体 但是,如果我在本地调用ExecuteQueryLocal,它将失败并引发以下异常:找不到resourceName的entityType:“GetInternalResourcesByCompetence”。考虑向查询添加一个“EntIQual.toType”调用,或者调用Meta DATASTUR.StEngTyType FraseCa

考虑下面的代码。从服务器获取数据时,它工作正常。我有一个自定义数据适配器(staffManagemetnService),它从服务器返回的json创建客户端实体

但是,如果我在本地调用ExecuteQueryLocal,它将失败并引发以下异常:
找不到resourceName的entityType:“GetInternalResourcesByCompetence”。考虑向查询添加一个“EntIQual.toType”调用,或者调用Meta DATASTUR.StEngTyType FraseCaseNead方法登记这个资源名称< /C> > /P>的EntyType类型。
        var query = breeze.EntityQuery.from('GetInternalResourcesByCompetence').withParameters(parameters);

        var result = self.manager.executeQueryLocally(query.using(dataService.staffManagementService));
        if (result) {
            return $q.resolve(result);
        } else {
            return this.manager.executeQuery(query.using(dataService.staffManagementService))
                .then(function (data) {
                    return data.results;
                })
               .catch(function (err) {
                   logError('Restrieving resources days off failed', err, true);
               });
        }

我不知道这是什么意思。既然我特别要求breeze使用自定义dataAdapter,那么它是否应该开箱即用呢?

重要的是要区分资源名称和实体类型名称。资源名称通常是端点的一部分,并且是复数形式(例如
orders
)。类型名称通常是单数的(例如
order

在本地,breeze不能对资源名做太多处理,因为它不会调用端点。相反,您需要一个特定的实体类型名称

您可以使用
setEntityTypeForResourceName
函数将entityType映射到resourcename:

metadataStore.setEntityTypeForResourceName('Speakers', 'Person');

请参阅“资源名称不是EntityType名称”一章和以下章节:

是的,您是对的。最后,我从缓存中检索实体,然后使用一个简单的过滤函数过滤出结果。但是不能使用withParams应用筛选器。