データのリストをキャッシュに保存する必要があります。
完全なリストが必要な場合もあれば、結果を照会してリストから1つのアイテムを返すだけでよい場合もあります。
1つのアイテムの現在のロジックは次のとおりです。
User result;
var cachedUsers = _cache.Get<List<User>>(Constants.Cache.UsersKey);
if( cachedUsers != null)
{
result = cachedUsers.FirstOrDefault(u => u.UserID == userID);
if (result != null)
return result;
}
result = GetUserFromDb(userID);
if (cachedUsers != null)
{
cachedUsers.Add(result);
_cache.Store(StoreMode.Set, Constants.Cache.UsersKey, cachedUsers);
}
return result;
ユーザーの完全なリストをロードせずに、キャッシュから1つの要素に直接アクセスできますか?また、完全なリストを読み込んで上書きせずに、ユーザーをキャッシュに追加するロジックも必要です。
編集:リストとは別にアイテムを保存するか、別のアプローチでキャッシュを最初から書き込むオプションがあります。
このロジックを実装するための最良の方法は何ですか?