• 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

NHibernate

NHibernate is an open source Object-Relational Mapping solution which provides a framework for mapping relational database on object oriented representation of data. This reduces significant developer's efforts for retrieving data from database. Furthermore, to improve applications performance and reduce load on database, NHibernate provides feature of caching to reduce repetitive database calls.

NHibernate First Level Cache

NHibernate First level caching module provides session level in process caching. Whenever a session is created, a session cache is associated with it. When an object is loaded from the database, a copy of object is maintained in the session cache. If the object is to be fetched again in the same session, cached copy of object is returned. In a particular transaction, if the same object is updated multiple times, it is only updated in session cache. At committing transaction, only the final state of object is persisted in database, thus avoiding repetitive update calls.

NCache as NHibernate Second Level Cache

NCache provides NHibernate second level cache provider. NCache provider can be configured as NHibernate second level cache without any code change. Using NCache as second level cache for NHibernate enable application to use NCache's distributed caching features.

NCache provides the following features with second level cache provider:

  • Specify Multiple Regions

Multiple NHibernate regions can be specified and configured in NCache configuration file for NHibernate. These regions are identified using region names and can be configured with multiple NCache features.

Each region can be configured with NCache caching features.

  • NCache Cache for Region

NCache allows specifying NCache cache instance for each region separately. Each region can be configured on separate NCache cache instance or one instance can also be used for multiple regions.

  1. Cache item priority: Data in each region can be configured to have a priority in cache. This priority is then used for data eviction policies.

  2. Absolute expiration: NCache's configurable absolute expiration feature keeps data in cache up to date by expiring old data after configured time interval.

  3. Sliding expiration: Cache region can also be configured to have an absolute expiration for items in cache. Using sliding expiration data not used since the configured interval will be removed automatically by NCache.

  • Configure Multiple Regions even on a Single NCache Cache Instance

NCache provider for NHibernate allows using single NCache instance for multiple NHibernate cache instances. NCache keeps the record of data and its associated NHibernate region.

  • Database Dependencies

To ensure data consistency with database, NCache provides database dependency feature for NHibernate applications that can be configured on entity bases. Database dependency synchronizes cache data with the database such that any change in database record invalidates respective entity in cache. Thus NHibernate retrieves up to date record even if database is updated by an application other than NHibernate application.

  • Query Caching Feature to Cache Large Queries' Results

Complex and large queries if executed repeatedly with no result changed can put a huge load on database. To avoid multiple times execution of such queries NCache allows to cache such queries using NHibernate's query cache feature. So that such query and its results executed for one NHibernate application become available to all NHibernate applications using that database without querying the database.

  • No Code Change Required

NCache allows using all features through configuration files with no code change required.

In This Section

Using NCache as NHibernate Second Level Cache
Explains how to configure and use NCache as NHibernate Second Level Cache.

Using Query Caching
Explains how to cache queries in NCache using NHibernate.

Configure Database Synchronization in NHibernate
Explains how to synchronize databases with NHibernate in NCache.

Back to top Copyright © 2017 Alachisoft