ServiceStack - Autoquery& OrmLiteCacheClient

时间:2016-03-04 08:59:41

标签: caching servicestack ormlite-servicestack

ServiceStack附带了一些很棒的功能,包括AutoQuery,最新的更新包含了很棒的Admin UI

我希望实现以下功能,使用OrmLiteCacheClient作为AutoQuery的数据库。

更具体地说,

  1. 我希望将一些对象(响应DTO)缓存(/存储)到OrmLiteCacheClient

  2. 使用AutoQuery处理保存到OrmLiteCacheClient的实体的请求和响应

  3. 这可以实现吗?

1 个答案:

答案 0 :(得分:2)

  

我希望实现以下功能,使用OrmLiteCacheClient作为AutoQuery的数据库。

不可能,AutoQuery的工作原理是从AutoQuery Request构造一个由远程RDBMS执行的SQL表达式,其结果用于填充AutoQuery Response DTO。

但您仍然可以像任何其他服务一样缓存AutoQuery服务,例如:

public class TechnologyServices : Service
{
    public IAutoQuery AutoQuery { get; set; }

    //Cached AutoQuery
    public object Any(FindTechnologies query)
    {
        var key = Request.QueryString.ToString();
        return Request.ToOptimizedResultUsingCache(Cache, key, () =>
        {
            var q = AutoQuery.CreateQuery(query, Request);
            return AutoQuery.Execute(query, q);
        });
    }
}