• Webinars
  • Docs
  • Download
  • Blogs
  • Contact Us
Show / Hide Table of Contents
  • Programmer's Guide
  • Client Side API Programming
    • Setting Up Development Environment
    • Basic Cache Operations
      • Initialize Cache
      • Add Data to Cache
      • Update Data in Cache
      • Fetch Data From Cache
      • Remove Data From Cache
      • Dispose Cache
    • Bulk Operations
      • Adding Collection to Cache
      • Updating Collection in Cache
      • Retrieving Collection from Cache
      • Removing Collection from Cache
      • Deleting Collection from Cache
    • Asynchronous Operations
      • Using Asynchronous Operations
      • Using Asynchronous Operations with Callback Methods
    • Groups and Subgroups
      • Adding/Updating Data Group in Cache
      • Retrieving Data Group from Cache
      • Removing Data Group from Cache
    • Tagging Data in NCache
      • Creating Tags
      • Adding Items with Tags
      • Retrieving Previously Tagged Data
      • Removing Tagged Items from Cache
    • Named Tags
    • Data Expiration Strategies
      • Using Absolute Expiration
      • Using Sliding Expiration
    • Cache Dependencies
      • Key Dependency
      • File Dependency
      • Notification based Dependencies
        • Database Dependency using SQL Server
        • Database Dependency using Oracle
      • Polling Based Dependency
      • Custom Data Source Dependency
      • Multiple Cache Sync Dependency
      • Aggregate Dependency
      • Add Dependency to Existing Item
      • Using CLR Procedures to Call NCache
    • Locking Data in NCache
      • Locking Items in Cache (Pessimistic Locking)
      • Locking Items with Cache Item Versioning (Optimistic Locking)
    • SQL Reference for NCache
      • SQL Syntax
      • Querying Samples for Operators
      • Querying Data in NCache
      • NCache Language Integrated Query (LINQ)
        • Using LINQ in NCache
        • Configuring LINQPad for NCache
        • Querying NCache Data in LINQPad
    • Event Notifications
      • Cache Level Event Notifications
      • Item Level Event Notifications
      • Custom Event Notifications
    • Publish/Subscribe (Pub/Sub) in NCache
      • Pub/Sub Topics
      • Managing Topics
      • Pub/Sub Messages
        • Message Behavior and Properties
        • Creating a Message
      • Publish Messages to Topic
      • Subscribe for Topic Messages
      • Monitoring Pub/Sub Topics
    • Continuous Query
    • Using Streams in NCache
      • Opening with Stream Modes
      • Adding and Updating Data with Streams
      • Retrieving Data from Streams
      • Closing a Stream
    • Security and Encryption
      • NCache Security
      • NCache Data Encryption
    • Data Compression
    • NCache Management API
  • Server Side API Programming
    • Cache Startup Loader
      • Components of Cache Startup Loader
      • Sample Implementation of ICacheLoader on Single Node
      • Sample Implementation of ICacheLoader with Distribution Hints
    • Data Source Providers (Backing Source)
      • Read-Through Caching
        • Configure Read-Through Provider
        • Using Read-Through with Cache Operations
      • Write-Through Caching
        • Configuring Write-Through Provider
        • Using Write-Through with Basic Operations
        • Using Write-Behind with Basic Operations
        • Using Write-Behind with Bulk Operations
        • Using Write-Behind with Async Operations
        • Monitor Write-Through Counters
    • Custom Dependency
      • Sample Implementation of Custom Dependency
      • Sample Usage of Custom Dependency
    • WAN Replication through Bridge
      • Bridge Configurations
      • Implementing Bridge Conflict Resolver
    • Entry Processor
      • Sample Implementation of IEntryProcessor Interface
      • Sample Usage of EntryProcessor
    • MapReduce
      • Sample Implementation of MapReduce Interfaces
      • Sample Usage of MapReduce
    • Aggregator
      • Sample Implementation of IValueExtractor Interface
      • Sample Implementation of IAggregator Interface
      • Sample Usage of Aggregator
    • Dynamic Compact Serialization
  • Client Side ASP.NET Features
    • ASP.NET
      • ASP.NET Session State Provider for NCache
      • Multi-Region ASP.NET Session State Provider for NCache
    • ASP.NET Core
      • Session Storage in ASP.NET Core
        • Configure NCache ASP.NET Core Session Provider
        • Configure ASP.NET Core Sessions with NCache IDistributedCache Provider
      • Multi-Region ASP.NET Core Session Provider for NCache
      • Object Caching in ASP.NET Core
    • ASP.NET SignalR
      • Using NCache Extension for SignalR
    • View State Caching
      • Configuring and Using Content Optimization
      • Group View State with Sessions
      • Limit View State Caching
      • Perform Page Level Grouping for View State
    • ASP.NET Output Cache
      • Configure ASP.NET Output Caching
      • Using ASP.NET Output Cache with Custom Hooks
  • Client Side Third Party Integrations
    • Migrating AppFabric to NCache
      • AppFabric API vs. NCache API
    • NHibernate
      • NCache as NHibernate Second Level Cache
      • Using NHibernate Query Caching
      • Configuring Database Synchronization with NHibernate
    • Entity Framework Caching Integration
      • NCache as Entity Framework Second Level Cache
      • Entity Framework Caching Config File
    • Entity Framework Core Caching
      • Installing NCache Entity Framework Core Provider
      • Configuring NCache Entity Framework Core Provider
      • Using NCache Entity Framework Core Provider
        • Caching Options for EF Core Provider
        • LINQ APIs for EF Core Provider
        • Cache Only APIs for EF Core Provider
        • Query Deferred APIs for EF Core Provider
      • Logging in NCache Entity Framework Core Provider
    • Memcached
      • NCache Memcached Gateway Approach
      • Memcached Client Plugin for .NET
    • Debug NCache Providers in Visual Studio
    • NCache for Visual Studio Extension

Entity Framework Caching Config File

efcaching.ncconf configuration contains cache and caching policy related information used by NCache Entity Framework caching provider. Some changes are required in efcaching.ncconf to run the Entity Framework application with NCache. This config file is placed in %NCHOME%/config.

You can configure the following through efcaching.ncconf:

  • EF integration modes
  • Database synchronization
  • Cache item expiration
<configuration>
    <app-config app-id="EFCachingDemo" mode="analysis|caching">

        <analysis-policy log-path="" analysis-time="1min" cache-enable-threshold="1" default-expiration-type="Sliding" default-expiration-time="180sec" dbsyncdependency="false"/>

        <cache-policy-configuration database="none|sqlserver|oracle" cache-id="mycache">
        <!--sql-query = "SELECT [Extent1].[CustomerID] AS [CustomerID],= @param_0"-->
        <query>
            <cache-query querytext="SELECT [Extent1].[OrderID] AS [OrderID], &lt; @param_0"/>
          <cache-policy vary-by-cache-param="param_0" expiration-type="Sliding" enabled="True" expiration-time="180sec" dbsyncdependency="False">
        </query>
        </cache-policy-configuration>

    </app-config>
</configuration>
Member Description
app-id This ID is same as defined in app/web configuration file of application.
mode NCache Entity Framework Caching provider works under two modes. It can either be in "Caching" or in "Analysis" mode.
Analysis Mode
Analysis Mode is used for monitoring the number of times each query executes and then it generates a report. Report contains the query text and the call count for each query. No caching is done at this mode.
  • log-path: The default Path at which analysis log files will be generated is %NCHOME%/log-files/EFCachingAnalysisLogs/.
  • analysis-time: Time for which the analysis will run. Default = 1 min
  • cache-enable-threshold: Caching will automatically be enabled for queries whose call-count exceeds this threshold. By default, its value is 1.
  • default-expiration-type: Default expiration type for analyzed queries. The default type is Sliding.
  • default-expiration-time: Default expiration time for analyzed queries. Default is 180 sec (3 min).
  • dbsyncdependency: Determines whether to enable database-dependency or not. Default value is false.

    Caching Mode
    Wrapping provider will cache the results of all the specified queries. Whenever update is detected (either UPDATE, INSERT or DELETE) in a respective database, the provider invalidates the affected cache entries by evicting all cached queries which were dependent on any of the updated tables.

  • database: Database server where user’s database resides.
  • cache-id: Specified Cache Name where query results are stored for fast access.
  • query Query attribute including user-configurable list of queries that should be cached with their results. A particular query can be configured with its cache policy defined in cache policy tag. Cache query and Cache policy are separated by dedicated tags. User can easily change policies from cache-policy tag without facing any XML parsing error.
    cache-query For cache query, this tag is auto generated by Entity Framework Caching Provider when the application is running in analysis mode. For ease of understanding, commented SQL-query tag is added so that the user can read the query.
  • cache-query-text: This is used for XML parser and the user is not allowed to make any sort of changes in it.
  • Cache-policy When mode is selected as Caching, only those query results will be cached for which caching is enabled. The user can also specify caching policies for all queries.
  • vary-by-cache-param: User can specify which parameter should be included as part of cache key. NCache Entity Framework Caching Provider will replace the actual parameter in config file with its own names which should follow the following parameter format: @param_[parameter-no/index].
    A sample query with parameters:
    "SELECT * FROM dbo.customers WHERE customer_id = @param_0 and dob > @param_1;"
  • enable: Determines whether caching is enabled for this query or not. Default value is true.
  • expiration-type: Type of expiration, it can be 'absolute' or 'sliding'. Default is sliding.
  • expiration-time: Expiration time for this query. Default is 180 sec (3 min).
  • dbsyncdependency: Determines whether to enable database-dependency for this query or not. Default is false.
  • Important

    SQL Dependency will be registered only for those SQL queries that satisfy all the conditions for SQL Notification Registration as described in the Microsoft provided document.

    Warning

    InProc client cache stores items in object form, therefore if object is modified by the application, it should be updated back to the cache so that other remote clustered cache and other client caches have no data integrity issue.

    Back to top Copyright © 2017 Alachisoft