/// <summary> /// Entity Framework Core Second Level Caching Library /// Please use /// services.AddDbContextPool<ApplicationDbContext>((serviceProvider, optionsBuilder) => /// optionsBuilder.UseSqlServer(...).AddInterceptors(serviceProvider.GetRequiredService<SecondLevelCacheInterceptor>())); /// to register it. /// </summary> public SecondLevelCacheInterceptor( IDbCommandInterceptorProcessor processor, IEFSqlCommandsProcessor sqlCommandsProcessor) { _processor = processor; _sqlCommandsProcessor = sqlCommandsProcessor; }
/// <summary> /// EFCachePolicy Parser Utils /// </summary> public EFCachePolicyParser( IOptions <EFCoreSecondLevelCacheSettings> cacheSettings, IEFSqlCommandsProcessor sqlCommandsProcessor, IEFDebugLogger logger) { _cacheSettings = cacheSettings?.Value; _sqlCommandsProcessor = sqlCommandsProcessor; _logger = logger; }
/// <summary> /// Cache Dependencies Calculator /// </summary> public EFCacheDependenciesProcessor( IEFDebugLogger logger, IEFCacheServiceProvider cacheServiceProvider, IEFSqlCommandsProcessor sqlCommandsProcessor) { _logger = logger; _cacheServiceProvider = cacheServiceProvider; _sqlCommandsProcessor = sqlCommandsProcessor; }
/// <summary> /// EFCachePolicy Parser Utils /// </summary> public EFCachePolicyParser( IOptions <EFCoreSecondLevelCacheSettings> cacheSettings, IEFSqlCommandsProcessor sqlCommandsProcessor, IEFDebugLogger logger) { if (cacheSettings == null) { throw new ArgumentNullException(nameof(cacheSettings)); } _cacheSettings = cacheSettings.Value; _sqlCommandsProcessor = sqlCommandsProcessor ?? throw new ArgumentNullException(nameof(sqlCommandsProcessor)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
/// <summary> /// Helps processing SecondLevelCacheInterceptor /// </summary> public DbCommandInterceptorProcessor( IEFDebugLogger logger, IEFCacheServiceProvider cacheService, IEFCacheDependenciesProcessor cacheDependenciesProcessor, IEFCacheKeyProvider cacheKeyProvider, IEFCachePolicyParser cachePolicyParser, IEFSqlCommandsProcessor sqlCommandsProcessor) { _cacheService = cacheService; _cacheDependenciesProcessor = cacheDependenciesProcessor; _cacheKeyProvider = cacheKeyProvider; _cachePolicyParser = cachePolicyParser; _logger = logger; _sqlCommandsProcessor = sqlCommandsProcessor; }
/// <summary> /// Cache Dependencies Calculator /// </summary> public EFCacheDependenciesProcessor( IEFDebugLogger logger, IEFCacheServiceProvider cacheServiceProvider, IEFSqlCommandsProcessor sqlCommandsProcessor, IOptions <EFCoreSecondLevelCacheSettings> cacheSettings) { _logger = logger; _cacheServiceProvider = cacheServiceProvider; _sqlCommandsProcessor = sqlCommandsProcessor; if (cacheSettings == null) { throw new ArgumentNullException(nameof(cacheSettings)); } _cacheSettings = cacheSettings.Value; }