Самый простой способ реализовать кеш - использовать словарь или аналогичную структуру данных в вашем классе для хранения результатов в памяти для последовательных вызовов.
public class CachedDatastore
{
private Dictionary<string, object> cache = new Dictionary<string, object>();
public void FindById(string id)
{
if (!cache.ContainsKey(id))
{
var data = GetDataFromDatabase(id);
cache[id] = data;
}
return cache[id];
}
}
Это просто базовый пример, если вы хотите попробовать что-то реализовать самостоятельно. Он не поддерживает «вытеснение» из кеша или повторную загрузку данных в любое время. Если вам нужны более продвинутые функции, я бы порекомендовал в .NET Framework найти классы кэша или другие сторонние библиотеки.