Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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,我有一个问题: var query = entityQuery.from('Reports').where(predicate); manager.executeQuery(query).then(function(data){ var reportFile = data.results[0];}); 为了描述-I创建谓词,将查询发送到服务器,该服务器返回由谓词选择的实体组成的生成报告文件的路径。服务器端看起来像这样: [HttpGet] public string Reports(){

我有一个问题:

var query = entityQuery.from('Reports').where(predicate);
manager.executeQuery(query).then(function(data){ var reportFile = data.results[0];});
为了描述-I创建谓词,将查询发送到服务器,该服务器返回由谓词选择的实体组成的生成报告文件的路径。服务器端看起来像这样:

[HttpGet]
public string Reports(){
    var result = _contextProvider.Context.Items.Include('Subitem1').Include('Subitem2').Include('Subitem1.SubSubitem1').ToList();
    var ex = new ExportController();
    return ex.ExportResults(result);
}
我希望这样做是为了只进入变量'result'中以前解析的'predicate'所选择的项,而是获取所有项,忽略谓词。我曾尝试在action方法前面添加[Queryable],但随后我得到一个错误,action方法无法返回字符串。方法返回生成的报告的路径

可以用微风吹吗


当前避免此问题的方法是让此操作方法返回包含所有选定项的IQueryable,然后让客户端将所有这些项发送回服务器,然后调用ExportController。考虑到我的应用程序应该有略多于几kB的数据,这似乎不是一个长期的解决方案。

您使用的是服务器端Breeze控制器属性吗?如果不是,并且您没有使用IQueryable,那么服务器将忽略您的谓词。另一个选项是在查询中创建参数并使用withParameters(),然后在服务器端接收这些参数进行处理。整个代码都有问题。返回值是string,因为我正在发回一个下载链接,所以它不是IQueryable。使用withParameters()发送到服务器是可能的,但考虑到我的筛选是在客户端解析的,我希望我不需要在服务器上也做解析器。