﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.8.0/dotnetdoc/api/Apache.Ignite.Core.Cache.Store.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">



    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Namespace Apache.Ignite.Core.Cache.Store
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Apache.Ignite.Core.Cache.Store
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.24.0.0">
    
    <link rel="shortcut icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>
  <body data-spy="scroll" data-target="#affix">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Cache.Store">
  
  <h1 id="Apache_Ignite_Core_Cache_Store" data-uid="Apache.Ignite.Core.Cache.Store" class="text-break">Namespace Apache.Ignite.Core.Cache.Store
  </h1>
  <div class="markdown level0 summary"></div>
  <div class="markdown level0 conceptual"></div>
  <div class="markdown level0 remarks"></div>
    <h3 id="classes">Classes
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter-3.html">CacheParallelLoadStoreAdapter&lt;TK, TV, TData&gt;</a></h4>
      <section><p>Cache storage adapter with parallel loading in LoadAll method. </p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Cache.Store.CacheStoreAdapter-2.html">CacheStoreAdapter&lt;TK, TV&gt;</a></h4>
      <section><p>Cache storage convenience adapter. It provides default implementation for 
bulk operations, such as <code>LoadAll</code>, <code>PutAll</code> and
<code>RemoveAll</code> by sequentially calling corresponding <code>Load</code>,
<code>Put</code> and <code>Remove</code> operations. Use this adapter whenever 
such behaviour is acceptable. However in many cases it maybe more preferable 
to take advantage of database batch update functionality, and therefore default 
adapter implementation may not be the best option.
<p>
Note that <code>LoadCache</code> method has empty implementation because it is 
essentially up to the user to invoke it with specific arguments.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Cache.Store.CacheStoreException.html">CacheStoreException</a></h4>
      <section><p>Indicates an error during CacheStore operation.</p>
</section>
    <h3 id="interfaces">Interfaces
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore.html">ICacheStore</a></h4>
      <section><p>Non-generic base type for <a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore-2.html">ICacheStore&lt;TK, TV&gt;</a>, used only for configuration property.
Users should implement generic <a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore-2.html">ICacheStore&lt;TK, TV&gt;</a>.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore-2.html">ICacheStore&lt;TK, TV&gt;</a></h4>
      <section><p>API for cache persistent storage for read-through and write-through behavior.
<p>
Generic argument types depend on <a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html#Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_KeepBinaryInStore">KeepBinaryInStore</a> property.
When <code>true</code> (default), cache store operates on <a class="xref" href="Apache.Ignite.Core.Binary.IBinaryObject.html">IBinaryObject</a> instances.
Otherwise, generic arguments should be the same as in corresponding <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html">ICache&lt;TK, TV&gt;</a>.
<p>
Persistent store is configured in Ignite&apos;s Spring XML configuration file via
<code>CacheConfiguration.setStore()</code> property. If you have an implementation
of cache store in .NET, you should use special Java wrapper which accepts assembly name and
class name of .NET store implementation (both properties are mandatory).</p>
<p>Optionally, you may specify &quot;properies&quot; property to set any property values on an instance of your store.
<example>
Here is an example:<p>
<pre><code>&lt;bean class=&quot;org.apache.ignite.configuration.CacheConfiguration&quot;>
    ...
    &lt;property name=&quot;cacheStoreFactory&quot;>
        &lt;bean class=&quot;org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory&quot;>
            &lt;property name=&quot;assemblyName&quot; value=&quot;MyAssembly&quot;/>
            &lt;property name=&quot;className&quot; value=&quot;MyApp.MyCacheStore&quot;/>
            &lt;property name=&quot;properties&quot;>
                &lt;map>
                    &lt;entry key=&quot;IntProperty&quot;>
                        &lt;value type=&quot;java.lang.Integer&quot;>42&lt;/value>
                    &lt;/entry>
                    &lt;entry key=&quot;StringProperty&quot; value=&quot;String value&quot;/>
                &lt;/map>
            &lt;/property>
        &lt;/bean>
    &lt;/property>
    ...
&lt;/bean></code></pre>
<p></example>
Assemply name and class name are passed to <a target="_blank" href="http://msdn.microsoft.com/en-us/library/d133hta4.aspx"><strong>System.Activator.CreateInstance(String, String)</strong></a>
method during node startup to create an instance of cache store. Refer to its documentation for details.
<p>
All transactional operations of this API are provided with ongoing <a class="xref" href="Apache.Ignite.Core.Transactions.ITransaction.html">ITransaction</a>,
if any. You can attach any metadata to transaction, e.g. to recognize if several operations 
belong to the same transaction or not.
<example>
Here is an example of how attach a ODBC connection as transaction metadata:<p>
<pre><code>OdbcConnection conn = tx.Meta(&quot;some.name&quot;);

if (conn == null)
{
    conn = ...; // Create or get connection.

    // Store connection in transaction metadata, so it can be accessed
    // for other operations on the same transaction.
    tx.AddMeta(&quot;some.name&quot;, conn);
}</code></pre>
<p></example></p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStoreSession.html">ICacheStoreSession</a></h4>
      <section><p>Session for the cache store operations. The main purpose of cache store session
is to hold context between multiple store invocations whenever in transaction. For example,
you can save current database connection in the session <a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStoreSession.html#Apache_Ignite_Core_Cache_Store_ICacheStoreSession_Properties">Properties</a> map. You can then
commit this connection in the <a class="xref" href="Apache.Ignite.Core.Cache.Store.ICacheStore-2.html#Apache_Ignite_Core_Cache_Store_ICacheStore_2_SessionEnd_System_Boolean_">SessionEnd(Boolean)</a> method.</p>
</section>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            © 2015 - 2019 The Apache Software Foundation
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
