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 を渡すときに、メインのキャッシュされたコレクションを使用して個々のオブジェクトを取得することです。
上記のコードのコメントを外すと、メイン コレクションは "users" キーの下にキャッシュされますが、送信した特定のクエリは Db に再度ヒットします。キャッシュが間違っていると考えているだけですか?
前もって感謝します、マイク