我正在学习 ServiceStack,并且有一个关于如何将 [Route] 标签与缓存一起使用的问题。这是我的代码:
[Route("/applicationusers")]
[Route("/applicationusers/{Id}")]
public class ApplicationUsers : IReturn<ApplicationUserResponse>
{
public int Id { get; set; }
}
public object Get(ApplicationUsers request)
{
//var cacheKey = UrnId.Create<ApplicationUsers>("users");
//return RequestContext.ToOptimizedResultUsingCache(base.Cache, cacheKey, () =>
return new ApplicationUserResponse
{
ApplicationUsers = (request.Id == 0)
? Db.Select<ApplicationUser>()
: Db.Select<ApplicationUser>("Id = {0}", request.Id)
};
}
我想要的是缓存“ApplicationUsers”集合,以及我传入 Id 的时间,以便它使用主缓存集合来获取单个对象。
如果我取消注释上面的代码,主集合缓存在“用户”键下,但我提交的任何特定查询都会再次命中 Db。我只是在想缓存错误吗?
在此先感谢,迈克