/// <summary> /// Set the invalidating entities, relationships and /// fields from the <see cref="CacheContext"/>. /// </summary> /// <param name="cacheContext"> /// The <see cref="CacheContext"/> /// </param> /// <param name="key"> /// The key to associate the entities, relationships and fields with. /// </param> /// <exception cref="ArgumentNullException"> /// <paramref name="cacheContext"/> cannot be null. /// </exception> public void AddInvalidations(CacheContext cacheContext, TKey key) { if (cacheContext == null) { throw new ArgumentNullException("cacheContext"); } EntityToCacheKey.AddOrUpdateKeys(cacheContext.Entities, key); FieldTypeToCacheKey.AddOrUpdateKeys(cacheContext.FieldTypes, key); RelationshipTypeToCacheKey.AddOrUpdateKeys(cacheContext.RelationshipTypes, key); EntityInvalidatingRelationshipTypesToCacheKey.AddOrUpdateKeys(cacheContext.EntityInvalidatingRelationshipTypes, key); EntityTypeToCacheKey.AddOrUpdateKeys(cacheContext.EntityTypes, key); }
/// <summary> /// Merge the values for the specified serializable cache invalidation key with those already present. /// </summary> /// <param name="lazySerializableKey">The lazy serializable key.</param> public void FromSerializableKey(Lazy <SerializableCacheInvalidationKey <TKey> > lazySerializableKey) { if (lazySerializableKey == null) { return; } var serializableKey = lazySerializableKey.Value; if (serializableKey == null) { return; } if (serializableKey.EntityToCacheKey != null) { EntityToCacheKey.AddOrUpdateKeys(serializableKey.EntityToCacheKey, serializableKey.Key); } if (serializableKey.FieldTypeToCacheKey != null) { FieldTypeToCacheKey.AddOrUpdateKeys(serializableKey.FieldTypeToCacheKey, serializableKey.Key); } if (serializableKey.RelationshipTypeToCacheKey != null) { RelationshipTypeToCacheKey.AddOrUpdateKeys(serializableKey.RelationshipTypeToCacheKey, serializableKey.Key); } if (serializableKey.EntityInvalidatingRelationshipTypesToCacheKey != null) { EntityInvalidatingRelationshipTypesToCacheKey.AddOrUpdateKeys(serializableKey.EntityInvalidatingRelationshipTypesToCacheKey, serializableKey.Key); } if (serializableKey.EntityTypeToCacheKey != null) { EntityTypeToCacheKey.AddOrUpdateKeys(serializableKey.EntityTypeToCacheKey, serializableKey.Key); } }