在特定端点上覆盖AutoQuery MaxLimit

时间:2019-06-07 10:31:16

标签: servicestack

如果在启动时为自动查询设置了最大限制:

Plugins.Add(new AutoQueryFeature { MaxLimit = 100 });

在我覆盖自动查询的特定服务终结点上是否有覆盖它的方法?

我希望对所有公共端点强制执行此操作,但在管理员方面,我希望能够获取尽可能多的数据,但是当我将AutoQuery对象注入服务时,我看不到任何方法可以覆盖查询限制

1 个答案:

答案 0 :(得分:2)

您需要创建一个Custom AutoQuery Implementation,您可以在其中覆盖自动查询生成的SQL表达式,例如:

echo

或者,您还应该可以使用AutoQuery Filter覆盖该限制:

public class MyQueryServices : Service
{
    public IAutoQueryDb AutoQuery { get; set; }

    //Override with custom implementation
    public object Any(FindMovies query)
    {
        var q = AutoQuery.CreateQuery(query, base.Request);
        q.Take(CustomLimit);
        return AutoQuery.Execute(query, q);
    }
}