Adicionar/atualizar dados com tags nomeadas no cache de dados
Para associar Named Tags a qualquer item de cache, é necessário fornecer uma lista de Named Tags, cada uma com dois parâmetros que são chave como uma string que é o nome da tag, e valor como qualquer tipo primitivo que é o valor atribuído à chave. NCache então permite que você associe seus objetos a essas tags nomeadas. Você pode adicionar itens no cache de dados com Tags Nomeadas e depois recuperar esses itens do cache usando as Tags Nomeadas adicionadas anteriormente.
Quando os itens já foram adicionados ao cache com determinadas tags nomeadas, NCache fornece ao usuário a opção de atualizar Named Tags já presentes no cache de dados.
Pré-requisitos
- Para aprender sobre os pré-requisitos padrão necessários para trabalhar com todos os NCache recursos do lado do cliente, consulte a página fornecida em Pré-requisitos da API do lado do cliente.
- Para obter detalhes da API, consulte: ICache, Item de cache, Named Tags, Adicionar, inserção, Get, Named TagsDictionary.
Adicionar tags nomeadas
NCache fornece uma classe personalizada, CacheItem
que pode ser usado para adicionar dados ao cache de dados. Esta classe encapsula dados como sua propriedade de valor. CacheItem
também permite definir especificações adicionais associadas a um objeto como um property
da classe NamedTags.
No exemplo a seguir, as tags nomeadas são definidas atribuindo-as como um property
of CacheItem
.
// Precondition: Cache is already connected
// In an online-store, VIP members are offered 10% discount
// A customer with VIP membership has signed in to the website
string customerKey = $"Customer:ALFKI";
Customer customer = cache.Get<Customer>(customerKey);
// Get customer from database if not found in cache
if (customer == null)
{
// Get customer from the database
customer = FetchCustomerFromDB("ALFKI");
// Create a new CacheItem
var cacheItem = new CacheItem(customer);
// Creating a Named Tags Dictionary
var namedTags = new NamedTagsDictionary();
/* Adding Named Tags to the Dictionary where
Keys are the names of the tags as string type and Values are of primitive type*/
namedTags.Add("VIP_Membership_Discount", 0.10 );
// Setting the named tag property of the cacheItem
cacheItem.NamedTags = namedTags;
cache.Add(customerKey, cacheItem);
}
Note
Para garantir que a operação seja à prova de falhas, é recomendável lidar com possíveis exceções em seu aplicativo, conforme explicado em Como lidar com falhas.
Atualizar dados de tags nomeadas por meio de CacheItem
Atualizando tags nomeadas por meio de CacheItem
requer que o item seja buscado primeiro, suas tags nomeadas sejam modificadas e, em seguida, ele seja reinserido no cache usando o inserção método.
O exemplo a seguir primeiro busca o CacheItem
, cria uma lista com as tags nomeadas recentemente e, em seguida, reinsere as tags CacheItem
no cache junto com a lista de tags nomeadas modificada. Conseqüentemente, ele substitui o valor das tags nomeadas existentes.
Aviso
Uma Experiência Null
A matriz de tags nomeada lançará uma ArgumentNullException.
// Store Owner has increased VIP membership discount to 12%
string customerKey = $"Customer:ALFKI";
Customer customer = cache.Get<Customer>(customerKey);
// Get the customer from database if not found in the cache
if (customer == null)
{
customer = FetchCustomerFromDB("ALFKI");
}
// Create a new CacheItem
var cacheItem = new CacheItem(customer);
// Creating a Named Tags Dictionary
var newNamedTags = new NamedTagsDictionary();
// Add Named Tag with the updated discount value to the Dictionary
newNamedTags.Add("VIP_Membership_Discount", 0.12);
// Updates the Named Tags with the new Named Tags
// Overrides the value of the existing Named Tags
cacheItem.NamedTags = newNamedTags;
// Reinserts the updated cacheItem into the cache with the modified Named Tags
cache.Insert(customerKey, cacheItem);
Recursos adicionais
NCache fornece um aplicativo de exemplo para tags nomeadas em GitHub.
Veja também
Dados de cache de tags
Consulta SQL com NamedTags
Excluir SQL com NamedTags
Expiração de dados