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

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class IgniteDbConfiguration
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class IgniteDbConfiguration
   | 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.EntityFramework.IgniteDbConfiguration">
  
  
  <h1 id="Apache_Ignite_EntityFramework_IgniteDbConfiguration" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration" class="text-break">Class IgniteDbConfiguration
  </h1>
  <div class="markdown level0 summary"><p><span class="xref">System.Data.Entity.DbConfiguration</span> implementation that uses Ignite as a second-level cache 
for Entity Framework queries.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">System.Data.Entity.DbConfiguration</span></div>
    <div class="level2"><span class="xref">IgniteDbConfiguration</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetConfiguration(System.Data.Entity.DbConfiguration)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.LoadConfiguration(System.Type)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.LoadConfiguration(System.Reflection.Assembly)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.AddDependencyResolver(System.Data.Entity.Infrastructure.DependencyResolution.IDbDependencyResolver)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.AddDefaultResolver(System.Data.Entity.Infrastructure.DependencyResolution.IDbDependencyResolver)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetProviderServices(System.String, System.Data.Entity.Core.Common.DbProviderServices)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetProviderFactory(System.String, System.Data.Common.DbProviderFactory)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetExecutionStrategy(System.String, System.Func&lt;System.Data.Entity.Infrastructure.IDbExecutionStrategy&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetExecutionStrategy(System.String, System.Func&lt;System.Data.Entity.Infrastructure.IDbExecutionStrategy&gt;, System.String)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetDefaultTransactionHandler(System.Func&lt;System.Data.Entity.Infrastructure.TransactionHandler&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetTransactionHandler(System.String, System.Func&lt;System.Data.Entity.Infrastructure.TransactionHandler&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetTransactionHandler(System.String, System.Func&lt;System.Data.Entity.Infrastructure.TransactionHandler&gt;, System.String)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetDefaultConnectionFactory(System.Data.Entity.Infrastructure.IDbConnectionFactory)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetPluralizationService(System.Data.Entity.Infrastructure.Pluralization.IPluralizationService)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetDatabaseInitializer&lt;TContext&gt;(System.Data.Entity.IDatabaseInitializer&lt;TContext&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetMigrationSqlGenerator(System.String, System.Func&lt;System.Data.Entity.Migrations.Sql.MigrationSqlGenerator&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetManifestTokenResolver(System.Data.Entity.Infrastructure.IManifestTokenResolver)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetMetadataAnnotationSerializer(System.String, System.Func&lt;System.Data.Entity.Infrastructure.IMetadataAnnotationSerializer&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetProviderFactoryResolver(System.Data.Entity.Infrastructure.IDbProviderFactoryResolver)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetModelCacheKey(System.Func&lt;System.Data.Entity.DbContext, System.Data.Entity.Infrastructure.IDbModelCacheKey&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetDefaultHistoryContext(System.Func&lt;System.Data.Common.DbConnection, System.String, System.Data.Entity.Migrations.History.HistoryContext&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetHistoryContext(System.String, System.Func&lt;System.Data.Common.DbConnection, System.String, System.Data.Entity.Migrations.History.HistoryContext&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetDefaultSpatialServices(System.Data.Entity.Spatial.DbSpatialServices)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetSpatialServices(System.Data.Entity.Infrastructure.DbProviderInfo, System.Data.Entity.Spatial.DbSpatialServices)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetSpatialServices(System.String, System.Data.Entity.Spatial.DbSpatialServices)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetDatabaseLogFormatter(System.Func&lt;System.Data.Entity.DbContext, System.Action&lt;System.String&gt;, System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.AddInterceptor(System.Data.Entity.Infrastructure.Interception.IDbInterceptor)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetContextFactory(System.Type, System.Func&lt;System.Data.Entity.DbContext&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetContextFactory&lt;TContext&gt;(System.Func&lt;TContext&gt;)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.SetTableExistenceChecker(System.String, System.Data.Entity.Infrastructure.TableExistenceChecker)</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.DependencyResolver</span>
    </div>
    <div>
      <span class="xref">System.Data.Entity.DbConfiguration.Loaded</span>
    </div>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.EntityFramework.html">Apache.Ignite.EntityFramework</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.EntityFramework.dll</h6>
  <h5 id="Apache_Ignite_EntityFramework_IgniteDbConfiguration_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class IgniteDbConfiguration : DbConfiguration</code></pre>
  </div>
  <h3 id="constructors">Constructors
  </h3>
  <a id="Apache_Ignite_EntityFramework_IgniteDbConfiguration__ctor_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.#ctor*"></a>
  <h4 id="Apache_Ignite_EntityFramework_IgniteDbConfiguration__ctor" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.#ctor">IgniteDbConfiguration()</h4>
  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Apache.Ignite.EntityFramework.IgniteDbConfiguration.html">IgniteDbConfiguration</a> class.
<p>
This constructor uses default Ignite instance (with null <a class="xref" href="Apache.Ignite.Core.IgniteConfiguration.html#Apache_Ignite_Core_IgniteConfiguration_IgniteInstanceName">IgniteInstanceName</a>) 
and a cache with <a class="xref" href="Apache.Ignite.EntityFramework.IgniteDbConfiguration.html#Apache_Ignite_EntityFramework_IgniteDbConfiguration_DefaultCacheNamePrefix">DefaultCacheNamePrefix</a> name.
<p>
Ignite instance will be started automatically, if it is not started yet.
<p> 
<a class="xref" href="Apache.Ignite.Core.IgniteConfigurationSection.html">IgniteConfigurationSection</a> with name 
<span class="xref">Apache.Ignite.EntityFramework.IgniteDbConfiguration.ConfigurationSectionName</span> will be picked up when starting Ignite, if present.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IgniteDbConfiguration()</code></pre>
  </div>
  <a id="Apache_Ignite_EntityFramework_IgniteDbConfiguration__ctor_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.#ctor*"></a>
  <h4 id="Apache_Ignite_EntityFramework_IgniteDbConfiguration__ctor_Apache_Ignite_Core_IgniteConfiguration_Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_Apache_Ignite_EntityFramework_IDbCachingPolicy_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.#ctor(Apache.Ignite.Core.IgniteConfiguration,Apache.Ignite.Core.Cache.Configuration.CacheConfiguration,Apache.Ignite.Core.Cache.Configuration.CacheConfiguration,Apache.Ignite.EntityFramework.IDbCachingPolicy)">IgniteDbConfiguration(IgniteConfiguration, CacheConfiguration, CacheConfiguration, IDbCachingPolicy)</h4>
  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Apache.Ignite.EntityFramework.IgniteDbConfiguration.html">IgniteDbConfiguration</a> class.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IgniteDbConfiguration(IgniteConfiguration igniteConfiguration, CacheConfiguration metaCacheConfiguration, CacheConfiguration dataCacheConfiguration, IDbCachingPolicy policy)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.IgniteConfiguration.html">IgniteConfiguration</a></td>
        <td><span class="parametername">igniteConfiguration</span></td>
        <td><p>The ignite configuration to use for starting Ignite instance.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html">CacheConfiguration</a></td>
        <td><span class="parametername">metaCacheConfiguration</span></td>
        <td><p>Configuration of the metadata cache which holds entity set information. Null for default configuration. 
<p>
This cache holds small amount of data, but should not lose entries. At least one backup recommended.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html">CacheConfiguration</a></td>
        <td><span class="parametername">dataCacheConfiguration</span></td>
        <td><p>Configuration of the data cache which holds query results. Null for default configuration.
<p>
This cache tolerates lost data and can have no backups.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.EntityFramework.IDbCachingPolicy.html">IDbCachingPolicy</a></td>
        <td><span class="parametername">policy</span></td>
        <td><p>The caching policy. Null for default <a class="xref" href="Apache.Ignite.EntityFramework.DbCachingPolicy.html">DbCachingPolicy</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_EntityFramework_IgniteDbConfiguration__ctor_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.#ctor*"></a>
  <h4 id="Apache_Ignite_EntityFramework_IgniteDbConfiguration__ctor_Apache_Ignite_Core_IIgnite_Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_Apache_Ignite_EntityFramework_IDbCachingPolicy_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.#ctor(Apache.Ignite.Core.IIgnite,Apache.Ignite.Core.Cache.Configuration.CacheConfiguration,Apache.Ignite.Core.Cache.Configuration.CacheConfiguration,Apache.Ignite.EntityFramework.IDbCachingPolicy)">IgniteDbConfiguration(IIgnite, CacheConfiguration, CacheConfiguration, IDbCachingPolicy)</h4>
  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Apache.Ignite.EntityFramework.IgniteDbConfiguration.html">IgniteDbConfiguration</a> class.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IgniteDbConfiguration(IIgnite ignite, CacheConfiguration metaCacheConfiguration, CacheConfiguration dataCacheConfiguration, IDbCachingPolicy policy)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.IIgnite.html">IIgnite</a></td>
        <td><span class="parametername">ignite</span></td>
        <td><p>The ignite instance to use.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html">CacheConfiguration</a></td>
        <td><span class="parametername">metaCacheConfiguration</span></td>
        <td><p>Configuration of the metadata cache which holds entity set information. Null for default configuration. 
<p>
This cache holds small amount of data, but should not lose entries. At least one backup recommended.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html">CacheConfiguration</a></td>
        <td><span class="parametername">dataCacheConfiguration</span></td>
        <td><p>Configuration of the data cache which holds query results. Null for default configuration.
<p>
This cache tolerates lost data and can have no backups.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.EntityFramework.IDbCachingPolicy.html">IDbCachingPolicy</a></td>
        <td><span class="parametername">policy</span></td>
        <td><p>The caching policy. Null for default <a class="xref" href="Apache.Ignite.EntityFramework.DbCachingPolicy.html">DbCachingPolicy</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_EntityFramework_IgniteDbConfiguration__ctor_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.#ctor*"></a>
  <h4 id="Apache_Ignite_EntityFramework_IgniteDbConfiguration__ctor_System_String_Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_Apache_Ignite_EntityFramework_IDbCachingPolicy_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.#ctor(System.String,Apache.Ignite.Core.Cache.Configuration.CacheConfiguration,Apache.Ignite.Core.Cache.Configuration.CacheConfiguration,Apache.Ignite.EntityFramework.IDbCachingPolicy)">IgniteDbConfiguration(String, CacheConfiguration, CacheConfiguration, IDbCachingPolicy)</h4>
  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Apache.Ignite.EntityFramework.IgniteDbConfiguration.html">IgniteDbConfiguration</a> class.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IgniteDbConfiguration(string configurationSectionName, CacheConfiguration metaCacheConfiguration, CacheConfiguration dataCacheConfiguration, IDbCachingPolicy policy)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">configurationSectionName</span></td>
        <td><p>Name of the configuration section.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html">CacheConfiguration</a></td>
        <td><span class="parametername">metaCacheConfiguration</span></td>
        <td><p>Configuration of the metadata cache which holds entity set information. Null for default configuration.
<p>
This cache holds small amount of data, but should not lose entries. At least one backup recommended.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html">CacheConfiguration</a></td>
        <td><span class="parametername">dataCacheConfiguration</span></td>
        <td><p>Configuration of the data cache which holds query results. Null for default configuration.
<p>
This cache tolerates lost data and can have no backups.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.EntityFramework.IDbCachingPolicy.html">IDbCachingPolicy</a></td>
        <td><span class="parametername">policy</span></td>
        <td><p>The caching policy. Null for default <a class="xref" href="Apache.Ignite.EntityFramework.DbCachingPolicy.html">DbCachingPolicy</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_EntityFramework_IgniteDbConfiguration__ctor_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.#ctor*"></a>
  <h4 id="Apache_Ignite_EntityFramework_IgniteDbConfiguration__ctor_System_String_System_String_Apache_Ignite_EntityFramework_IDbCachingPolicy_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.#ctor(System.String,System.String,Apache.Ignite.EntityFramework.IDbCachingPolicy)">IgniteDbConfiguration(String, String, IDbCachingPolicy)</h4>
  <div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Apache.Ignite.EntityFramework.IgniteDbConfiguration.html">IgniteDbConfiguration</a> class.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IgniteDbConfiguration(string configurationSectionName, string cacheNamePrefix, IDbCachingPolicy policy)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">configurationSectionName</span></td>
        <td><p>Name of the configuration section.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">cacheNamePrefix</span></td>
        <td><p>The cache name prefix for Data and Metadata caches.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.EntityFramework.IDbCachingPolicy.html">IDbCachingPolicy</a></td>
        <td><span class="parametername">policy</span></td>
        <td><p>The caching policy. Null for default <a class="xref" href="Apache.Ignite.EntityFramework.DbCachingPolicy.html">DbCachingPolicy</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="fields">Fields
  </h3>
  <h4 id="Apache_Ignite_EntityFramework_IgniteDbConfiguration_DefaultCacheNamePrefix" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.DefaultCacheNamePrefix">DefaultCacheNamePrefix</h4>
  <div class="markdown level1 summary"><p>The default cache name to be used for cached EF data.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public const string DefaultCacheNamePrefix = &quot;entityFrameworkQueryCache&quot;</code></pre>
  </div>
  <h5 class="fieldValue">Field Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_EntityFramework_IgniteDbConfiguration_InitializeIgniteCaching_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.InitializeIgniteCaching*"></a>
  <h4 id="Apache_Ignite_EntityFramework_IgniteDbConfiguration_InitializeIgniteCaching_System_Data_Entity_DbConfiguration_Apache_Ignite_Core_IIgnite_Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_Apache_Ignite_Core_Cache_Configuration_CacheConfiguration_Apache_Ignite_EntityFramework_IDbCachingPolicy_" data-uid="Apache.Ignite.EntityFramework.IgniteDbConfiguration.InitializeIgniteCaching(System.Data.Entity.DbConfiguration,Apache.Ignite.Core.IIgnite,Apache.Ignite.Core.Cache.Configuration.CacheConfiguration,Apache.Ignite.Core.Cache.Configuration.CacheConfiguration,Apache.Ignite.EntityFramework.IDbCachingPolicy)">InitializeIgniteCaching(DbConfiguration, IIgnite, CacheConfiguration, CacheConfiguration, IDbCachingPolicy)</h4>
  <div class="markdown level1 summary"><p>Initializes Ignite caching for specified <span class="xref">System.Data.Entity.DbConfiguration</span>.
This method should be used when it is not possible to use or inherit <a class="xref" href="Apache.Ignite.EntityFramework.IgniteDbConfiguration.html">IgniteDbConfiguration</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void InitializeIgniteCaching(DbConfiguration dbConfiguration, IIgnite ignite, CacheConfiguration metaCacheConfiguration, CacheConfiguration dataCacheConfiguration, IDbCachingPolicy policy)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Data.Entity.DbConfiguration</span></td>
        <td><span class="parametername">dbConfiguration</span></td>
        <td><p><span class="xref">System.Data.Entity.DbConfiguration</span> instance to be initialized
    for Ignite caching.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.IIgnite.html">IIgnite</a></td>
        <td><span class="parametername">ignite</span></td>
        <td><p>The ignite instance to use.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html">CacheConfiguration</a></td>
        <td><span class="parametername">metaCacheConfiguration</span></td>
        <td><p>Configuration of the metadata cache which holds entity set information. Null for default configuration. 
<p>
This cache holds small amount of data, but should not lose entries. At least one backup recommended.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Configuration.CacheConfiguration.html">CacheConfiguration</a></td>
        <td><span class="parametername">dataCacheConfiguration</span></td>
        <td><p>Configuration of the data cache which holds query results. Null for default configuration.
<p>
This cache tolerates lost data and can have no backups.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.EntityFramework.IDbCachingPolicy.html">IDbCachingPolicy</a></td>
        <td><span class="parametername">policy</span></td>
        <td><p>The caching policy. Null for default <a class="xref" href="Apache.Ignite.EntityFramework.DbCachingPolicy.html">DbCachingPolicy</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
</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>
