&引用;递归深度超出了允许的限制。”;Breeze.js

&引用;递归深度超出了允许的限制。”;Breeze.js,breeze,Breeze,我收到“递归深度超过允许的限制”错误,当我使用超过100个条件创建breeze where条件时 我的代码是 $(list).each(function () { if (pred === undefined) { pred = entity_ODL.create("id", "==", this.id()); } else { pred = pred.or("id", "==", this.id()); } }); 这个限制并不特别令我惊讶。所以我认为最好的

我收到“递归深度超过允许的限制”错误,当我使用超过100个条件创建breeze where条件时

我的代码是

$(list).each(function () {
  if (pred === undefined) {
    pred = entity_ODL.create("id", "==", this.id());
  }
  else {
     pred = pred.or("id", "==", this.id());
  }
});

这个限制并不特别令我惊讶。所以我认为最好的办法是创建和执行多个查询,每个查询的条件少于100个,然后将结果连接起来。请参阅Q.all方法,将多个异步方法组合到一个回调中

一个查询有100多个条件?这给我敲响了警钟。如果我是你,我真的会仔细看看需要完成什么,以及当前的方法是否确实是正确的做事方式。

你没有明确指出,但我相信错误实际上发生在服务器端,而不是特定的问题

您可以通过在ApicController中添加/更改方法的属性来修复它

i、 e

[HttpGet]
[BreezeQueryable(MaxNodeCount=10000)]
公共IQueryable设备SearchView()
{
...
[HttpGet]
[BreezeQueryable(MaxNodeCount = 10000)]
public IQueryable<EquipmentSearchView> EquipmentSearchView()
{
...