• Products
  • Solutions
  • Customers
  • Resources
  • Company
  • Pricing
  • Download
Try Playground
  • Cache Settings
  • Configuration Files
  • Client Side Configurations
  • EFCaching Config
Show / Hide Table of Contents
  • Administrator's Guide
  • NCache Architecture
    • Cache Topologies
      • Partitioned Topologies
      • Replicated Topology
      • Mirrored Topology
      • Scalability in Topologies
    • Dynamic Clustering
    • Local Cache
    • Cache Client
    • Client Cache
    • Bridge for WAN Replication
    • Connectivity with Load Balancer
    • Serialization Format
    • Data Encryption
    • Data Compression
    • Data Load Balancing
    • Pipelining
    • Cache Server Backward Compatibility
    • Client Backward Compatibility
    • Eviction
    • Indexing
    • Split-Brain
    • Maintenance Mode
    • Runtime Data Sharing
    • Portable Data Types
    • Class Versioning
    • IP Binding with Multiple NICs
    • Graceful Node Down
    • Separate Cache Host Process
    • Self Healing Dynamic Clustering
    • Distributed Cache with Persistence
  • NCache Management Center
  • Configure Caches
    • Create a Cache
      • Local Cache Overview
        • Local Cache
        • Local Cache with Persistence
        • Pub/Sub Messaging Cache
        • Add Existing Cache
      • Clustered Cache Overview
        • Distributed Cache
        • Persistent Distributed Cache
        • Pub/Sub Messaging Cache
        • Add Existing Clustered Cache
        • Troubleshooting
    • Remove Cache
    • Clear Cache
    • Add Server Node
    • Remove Server Node
    • Add Test Data
    • Configure Query Indexes
    • Configure JSON Query Indexes
    • Compact Serialization
      • Non-Generic Registration
      • Non-Generic Unregistration
      • Generic Registration
      • Using Type Handler
    • Deploy Providers
    • Configure Custom Dependency
    • Add Data Source Providers
      • Read-Through Provider
      • Write-Through Provider
      • Write-Behind Provider
    • Loader and Refresher
    • Configure Maintenance Mode
      • Stop for Maintenance Mode
      • Exit Maintenance Mode
    • Configure LINQPad
      • Configure LinqPad for NCache
      • Querying Data in LinqPad
  • Configure Clients
    • Add Client Node
    • Remove Client Node
  • Configure Client Cache
    • Create Client Cache
    • Create Client Cache with NuGet
    • Enable Client Cache on Client Nodes
    • Disable Client Cache on Client Nodes
    • Remove Client Cache
  • Management Operations
    • Start Cache
    • Stop Cache
    • Restart Cache
    • Manage Cache Service on a Server Node
    • Memory Dumps
    • Data Load Balancing
    • Invoke Refresher Dataset
    • Import/Export Cache Data
    • Import Lucene Indexes
    • Suspend/Resume NCache Data Persistence
    • Backup and Restore NCache Persisted Data
  • Cache Settings
    • General Cache Settings
      • Cache Size
      • Cache Isolation Levels
      • Cache Serialization Format
      • Cache Data Expiration
    • Cache Cluster Settings
      • Ports
      • Operation Timeout
      • Configure Pipelining
      • Static Replication Interval
      • Connection Retries
      • Retry Interval
      • Split-Brain Auto Recovery
    • NCache Persistence Settings
      • Store Information
      • Persistence Interval
    • Error Logging
    • Cache Level Events
    • Client Activity Events
    • Eviction Policy
    • MapReduce
    • Register Classes for Portable Data Sharing
    • Compression
    • Email Notifications
    • Bind IP with Multiple NICs
      • Bind Cluster with a Dedicated IP
      • Bind Client/Server with a Dedicated IP
    • Heartbeat
    • Keep Alive
    • Client Death Detection
    • Communication Reliability
    • Auto Start Cache on Boot
    • Nagle's Algorithm
    • Dual Socket
    • Configuration Files
      • Client Side Configurations
        • Client Config
        • EFCaching Config
      • Server Side Configurations
        • Cache Config
        • Bridge Config
        • Modules Config
        • Security Config
        • TLS Config
        • Monitoring Config
        • Emails Template
  • Cache Server Settings
    • Server Connectivity
    • Bind to Multiple NICs
    • Server Ports
    • Memory
    • Custom Dependency
    • Request Inquiry
    • Windows Events
    • Message Events
    • Expiration & Eviction
    • SQL Server
    • Logging
    • Monitoring
    • Persistence Data Loading Retries
    • Miscellaneous Configurations
  • Bridge Server Settings
  • Cache Client Settings
  • Client Cache Settings
  • Configure Security
    • Configure Authentication and Authorization
    • Configure Encryption for Cache
    • Configure TLS Encryption
    • Configure HTTPS for NCache Management Center
  • Configure Bridge for WAN Replication
    • Create Bridge
    • Add Clustered Caches to Bridge
    • Configure Bridge Settings
    • Change Cache Synchronization Modes
    • Bridge Management
    • Synchronize Caches in Bridge
    • Leave Bridge
    • Remove Cache from Bridge
    • Configure Conflict Resolver
  • Setup Database for Cache Synchronization
    • Setup SQL Server Environment
    • Setup Oracle Database Environment
    • Setup OleDb Environment
    • Setup SQL Server for CLR Procedures
  • Simulate NCache Usage
  • Monitor Caches
    • Counters
      • Distributed Cache Counters
      • Distributed Cache with Persistence Counters
      • Pub/Sub Messaging Cache Counters
      • Distributed Lucene Cache Counters
      • Cache Client Counters
      • Bridge Counters
    • Monitor NCache using the NCache Management Center
      • Using Tabular Statistics
        • Configure Counters to Display Caching Statistics
        • Configure Counters to Display Pub/Sub Statistics
        • Configure Counters to Display Lucene Statistics
        • Configure Counters to Display Bridge Statistics
        • Browse Cache Statistics
        • Monitor Bridge
      • Using Monitoring Dashboards
        • Configure Monitor Settings
        • Configure Event Logging
        • Configure API Logging
        • Monitor with a Built-In NCache Monitor Dashboard
        • Monitor with the NCache Monitor Custom Dashboard
        • Monitor Cluster Connectivity
        • Monitor Cache Clusters using NCache Email Alerts
    • Monitor Cache Using Command Line Tools
      • Monitor Cache Server Statistics with Command Line Tools
      • Monitor Cache Client Statistics with Command Line Tools
    • Monitor NCache Using Windows PerfMon Tool
      • Monitoring Cache Server Counters using PerfMon
      • Monitoring Cache Client Counters using PerfMon
      • Monitor Bridge Counters Using PerfMon Tool
    • Monitor NCache using Prometheus
    • Monitor NCache using Grafana
    • Monitor NCache Using SNMP Counters
    • Monitor NCache Using JMX Counters
    • Logging
      • NCache Log Viewer
      • Performance Counters Logging
      • Windows Event Logging
      • Cache Health Alerts
      • Email Notifications on NCache Events
      • Cache Server Logging
      • Client Side API Logging
      • Cache Event IDs
      • Feature Usage Logging
    • Troubleshooting NCache Monitoring
      • Computer Name Not Found
      • Diskperf Not Installed
      • No READ Access to Perflib Subkeys
      • Unable to Connect to Remote Server
    • IPV6 Support

EFCaching Config (efcaching.ncconf)

The EFCaching configuration file contains information regarding the Entity Framework Provider. The efcaching.ncconf file is installed with NCache and is used for enabling NCache in Entity Framework applications.

Note

This file is located at %NCHOME%\config in Windows or /opt/ncache/config in Linux.

EFCaching Config Syntax

The EFCaching configuration file is explained below. These provider configuration contains cache and caching policy-related information.

<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="demoCache">
            <api-level-caching expiration-type="Sliding" enable="True" expiration-time="30sec" dbsyncdependency="False" resyncProviderName="EFResyncProvider"/>

            <!--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" resyncProviderName="EFResyncProvider">
            </query>
        </cache-policy-configuration>
    </app-config>
</configuration>

Understanding the EFCaching Config Tags

The following section explains the tags mentioned as part of the file syntax. To further understand EF Caching refer to the NCache Programmer's guide.

<app-config>

The tag defines configuration settings for an application.

<configuration>
<app-config app-id = "PersonNameApp" mode = "analysis|caching">
  • app-id: It is an identifier for an application. The configuration can contain multiple configuration settings for different applications. This id should be the same for efcaching.ncconf as in the application otherwise it will prompt an error.

  • mode: It can either be "Analysis" or "Caching" (Hot Applicable). By default, its value is 'caching'.

    • analysis: This mode is used for monitoring the number of times each query executes and then it generates a report. The report contains the Query text and the call count for each query. This report can be used as a custom policy. No caching is done in this mode.

    • caching: This mode caches the results of specified queries using either a cacheall or custom policy. On detecting updates (UPDATE, INSERT, or DELETE) in the database, it automatically evicts cached queries linked to the modified tables to ensure accuracy.

<analysis-policy>

This tag configures settings for analyzing query execution.

<analysis-policy log-path = "" analysis-time = "60" cache-enable-threshold = "5" default-expiration-type = "absolute|sliding" default-expiration-time = "180" dbsyncdependency = "true"/>
  • log-path: It specifies the path at which analysis log files will be generated. The default path is <InstallDir>/log-files/efcaching-analysis-logs/.

  • analysis-time: The time for which the analysis will run. The default value is 60 minutes.

  • cache-enable-threshold: Caching will automatically be enabled for queries whose call-count exceeds this threshold. The default value is 5.

  • default-expiration-type: Default expiration type for analyzed queries. By default, it is absolute.

  • default-expiration-time: Default expiration time for analyzed queries. The default value is 180 seconds (3 minutes).

  • dbsyncdependency: Determine whether to enable database dependency or not. By default, it is True.

<cache-policy-configuration>

This tag configures cache policies by specifying the database and a unique cache-id.

<cache-policy-configuration database = "none|oracle10i2|sqlserver" cache-id ="mycache">
  • database: Database information is collected to create a database sync dependency (Hot Applicable). The default value is 'none'.

  • cache-id: Specifies a unique name of the cache. The default value is 'mycache'.

<cache-policy>

For cache policy, it caches all the queries and their results.

   <cache-policy expiration-type = "absolute|sliding" enabled="True" expiration-time = "1800" dbsyncdependency ="true"/>
  • expiration-type: The type of expiration, can be 'sliding' or 'absolute'. The default value is 'absolute'.

  • enabled: Determine whether the policy is in effect or not (Hot Applicable). The default value is True.

  • expiration-time: Specify the time the cache entries will expire and be removed. By default the value is 180 seconds (3 minutes).

  • dbsyncdependency: Determine whether to enable the database dependency or not. The default value is True.

<custom-policy>

For custom policy, it includes a user-configurable list of queries that should be cached with their results. When a custom policy is selected, only those query results will be cached for which the caching is enabled. You can also specify a custom caching policy for all queries.

<custom-policy>
  <query query-text = "" ["SELECT FROM Products"] | stored-procedure-name = "" ] caching ="true" expiration-type = "absolute"| sliding = "" expiration-time = "180" dbsyncdependency ="true"/>
</custom-policy>
  • query-text: Specifies the text of the query for which the result is to be cached OR name of a stored procedure for which the output is to be cached.

  • stored-procedure-name: Specifies the CLR stored procedure name.

  • caching: Determines whether caching is enabled for this query or not. The default value is True.

  • expiration-type: The type of expiration, can be 'absolute' or 'sliding'. The default value is 'absolute'.

  • expiration-time: Specify the time the cache entries will expire and be removed. By default the value is 180 seconds (3 minutes).

  • dbsyncdependency: Determine whether to enable database dependency for analyzed queries. The default value is True.

In the case of stored procedures, query text will be the name of a stored procedure, and there will be no default policy or database sync dependency.

You can cache stored procedure result with expiration only, no database dependency is needed here.

See Also

Client Config
Server-side Configurations
Cache Server Settings
General Cache Settings

In This Article
  • EFCaching Config Syntax
  • Understanding the EFCaching Config Tags
    • <app-config>
    • <analysis-policy>
    • <cache-policy-configuration>
    • <cache-policy>
    • <custom-policy>
  • See Also

Contact Us

PHONE

+1 (214) 764-6933   (US)

+44 20 7993 8327   (UK)

 
EMAIL

sales@alachisoft.com

support@alachisoft.com

NCache
  • NCache Enterprise
  • NCache Professional
  • Edition Comparison
  • NCache Architecture
  • Benchmarks
Download
Pricing
Try Playground

Deployments
  • Cloud (SaaS & Software)
  • On-Premises
  • Kubernetes
  • Docker
Technical Use Cases
  • ASP.NET Sessions
  • ASP.NET Core Sessions
  • Pub/Sub Messaging
  • Real-Time ASP.NET SignalR
  • Internet of Things (IoT)
  • NoSQL Database
  • Stream Processing
  • Microservices
Resources
  • Magazine Articles
  • Third-Party Articles
  • Articles
  • Videos
  • Whitepapers
  • Shows
  • Talks
  • Blogs
  • Docs
Customer Case Studies
  • Testimonials
  • Customers
Support
  • Schedule a Demo
  • Forum (Google Groups)
  • Tips
Company
  • Leadership
  • Partners
  • News
  • Events
  • Careers
Contact Us

  • EnglishChinese (Simplified)FrenchGermanItalianJapaneseKoreanPortugueseSpanish

  • Contact Us
  •  
  • Sitemap
  •  
  • Terms of Use
  •  
  • Privacy Policy
© Copyright Alachisoft 2002 - 2025. All rights reserved. NCache is a registered trademark of Diyatech Corp.
Back to top