Gerando uma chave de cache exclusiva com base nos argumentos do método
Tenho uma estrutura básica de repositório que eventualmente executa uma consulta e mapeia os resultados de volta para um objeto:
Por exemplo
public SomeEntity Get(id)
{
return base.GetItem<SomeEntity>
("select * from SomeEntities where id = @idParam",
new { idParam = id});
}
Se isso se parece com o Dapper, é porque, sob o capô, o GetItem está envolvendo o Dappe
Gostaria de adicionar o cache automático ao GetItem, tenho dois argumento
Uma sequência que contém a consult um dicionário anônimo contendo todos os parâmetroEstou preocupado que fazer um simples hash primário nesses parâmetros possa causar colisões de chaves de cache e, quando você extrai dados de um cache, uma colisão pode ser muito ruim (por exemplo, vazamento de informações confidenciais
ntão, que técnicas eu tenho que gerariam uma chave de cache de tamanho razoável, garantindo a exclusividade com base na entrada de uma consulta e parâmetro