Ajouter/mettre à jour des données avec des balises nommées dans le cache de données
Pour associer des balises nommées à n'importe quel élément du cache, il est nécessaire de fournir une liste de balises nommées, chacune ayant deux paramètres qui sont key sous la forme d'une chaîne qui est le nom de la balise, et Plus-value comme n'importe quel type primitif qui est la valeur assignée à la clé. NCache vous permet ensuite d'associer vos objets à ces balises nommées. Vous pouvez ajouter des éléments dans le cache de données avec des balises nommées, puis récupérer ultérieurement ces éléments du cache à l'aide des balises nommées précédemment ajoutées.
Lorsque des éléments sont déjà ajoutés dans le cache avec certaines balises nommées, NCache offre à l'utilisateur la possibilité de mettre à jour les balises nommées déjà présentes dans le cache de données.
Pré-requis
- Pour en savoir plus sur les prérequis standard requis pour travailler avec tous NCache fonctionnalités côté client, veuillez vous référer à la page donnée sur Prérequis de l'API côté client.
- Pour plus de détails sur l'API, reportez-vous à : ICache, CacheItem, Balises nommées, Ajouter, insérer, Obtenez, NamedTagsDictionnaire.
Ajouter des balises nommées
NCache fournit une classe personnalisée, CacheItem
qui peut être utilisé pour ajouter des données au cache de données. Cette classe encapsule les données en tant que propriété de valeur. CacheItem
vous permet également de définir des spécifications supplémentaires associées à un objet en tant que property
de la classe NamedTags.
Dans l'exemple suivant, les balises nommées sont définies en les attribuant en tant que 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);
}
Notes
Pour garantir la sécurité de l'opération, il est recommandé de gérer toutes les exceptions potentielles au sein de votre application, comme expliqué dans Gestion des échecs.
Mettre à jour les données des balises nommées via CacheItem
Mise à jour des balises nommées via CacheItem
nécessite que l'élément soit d'abord récupéré, que ses balises nommées soient modifiées, puis qu'il soit réinséré dans le cache à l'aide du insérer méthode.
L'exemple suivant récupère d'abord le CacheItem
, crée une liste avec les balises nouvellement nommées, puis réinsère le CacheItem
dans le cache avec la liste de balises nommées modifiée. Par conséquent, il écrase la valeur des balises nommées existantes.
Fournir Null
Le tableau de balises nommé lancera une exception 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);
Ressources additionnelles
NCache fournit un exemple d'application pour les balises nommées sur GitHub.
Voir aussi
Données du cache de balises
Requête SQL avec NamedTags
Supprimer SQL avec NamedTags
Expiration des données