/// <summary> /// Evict all entries from the process-level cache. This method occurs outside /// of any transaction; it performs an immediate "hard" remove, so does not respect /// any transaction isolation semantics of the usage strategy. Use with care. /// </summary> /// <param name="factory">The session factory.</param> /// <param name="persistentClasses">The classes of the entities to evict.</param> /// <param name="cancellationToken">A cancellation token that can be used to cancel the work</param> public static async Task EvictAsync(this ISessionFactory factory, IEnumerable <System.Type> persistentClasses, CancellationToken cancellationToken = default(CancellationToken)) { cancellationToken.ThrowIfCancellationRequested(); if (factory is SessionFactoryImpl sfi) { await(sfi.EvictAsync(persistentClasses, cancellationToken)).ConfigureAwait(false); } else { if (persistentClasses == null) { throw new ArgumentNullException(nameof(persistentClasses)); } foreach (var @class in persistentClasses) { await(factory.EvictAsync(@class, cancellationToken)).ConfigureAwait(false); } } }
public Task EvictAsync(Type persistentClass, CancellationToken cancellationToken = new CancellationToken()) => _inner.EvictAsync(persistentClass, cancellationToken);
public Task EvictAsync(Type persistentClass, CancellationToken cancellationToken = new CancellationToken()) { return(_sessionFactory.EvictAsync(persistentClass, cancellationToken)); }