Agregar/actualizar datos con etiquetas con nombre en la caché de datos
Para asociar etiquetas con nombre con cualquier elemento de caché, es necesario proporcionar una lista de etiquetas con nombre, cada una con dos parámetros que son clave como una cadena que es el nombre de la etiqueta, y propuesta de como cualquier tipo primitivo que es el valor asignado a la clave. NCache luego le permite asociar sus objetos con estas etiquetas con nombre. Puede agregar elementos en el caché de datos con etiquetas con nombre y luego recuperar estos elementos del caché utilizando las etiquetas con nombre agregadas anteriormente.
Cuando los elementos ya están agregados en el caché con ciertas etiquetas con nombre, NCache proporciona al usuario la opción de actualizar las etiquetas con nombre que ya están presentes en la caché de datos.
Requisitos previos
- Para obtener información sobre los requisitos previos estándar necesarios para trabajar con todos NCache características del lado del cliente, consulte la página proporcionada en Requisitos previos de la API del lado del cliente.
- Para obtener detalles de la API, consulte: Dolor, Artículo de caché, Etiquetas con nombre, Añada, recuadro, Recibe, NamedTagsDiccionario.
Agregar etiquetas con nombre
NCache proporciona una clase personalizada, CacheItem
que se puede utilizar para agregar datos al caché de datos. Esta clase encapsula datos como su propiedad de valor. CacheItem
También le permite establecer especificaciones adicionales asociadas con un objeto como property
de la clase NamedTags.
En el siguiente ejemplo, las etiquetas con nombre se configuran asignándolas como 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 garantizar que la operación sea a prueba de fallas, se recomienda manejar cualquier posible excepción dentro de su aplicación, como se explica en Manejo de fallas.
Actualizar datos de etiquetas con nombre a través de CacheItem
Actualización de etiquetas con nombre mediante CacheItem
requiere que primero se busque el elemento, se modifiquen sus etiquetas con nombre y luego se reinserte en el caché usando el recuadro método.
El siguiente ejemplo obtiene primero el CacheItem
, crea una lista con las etiquetas recién nombradas y luego reinserta las CacheItem
en el caché junto con la lista de etiquetas con nombre modificada. Por lo tanto, sobrescribe el valor de las etiquetas con nombre existentes.
advertencia
Proporcionar Null
La matriz de etiquetas con nombre generará una excepción 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 adicionales
NCache proporciona una aplicación de muestra para etiquetas con nombre en GitHub.
Vea también
Etiquetar datos de caché
Consulta SQL con etiquetas con nombre
Eliminar SQL con NamedTags
Caducidad de datos