﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<!-- Yandex.Metrika counter -->
    <script type="text/javascript" >
      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
    
      ym(72949126, "init", {
           clickmap:true,
           trackLinks:true,
           accurateTrackBounce:true,
           webvisor:true
      });
    </script>
    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
    <!-- /Yandex.Metrika counter -->
<script type='text/javascript'>
    window.__lo_site_id = 284467;
    
      (function() {
        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
        })();
      </script>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/dotnetdoc/api/Apache.Ignite.Linq.CacheLinqExtensions.html" />
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class CacheLinqExtensions
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class CacheLinqExtensions
   | 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 async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
    
      gtag('config', 'UA-61232409-1');
    </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.Linq.CacheLinqExtensions">
  
  
  <h1 id="Apache_Ignite_Linq_CacheLinqExtensions" data-uid="Apache.Ignite.Linq.CacheLinqExtensions" class="text-break">Class CacheLinqExtensions
  </h1>
  <div class="markdown level0 summary"><p>Extensions methods for <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html">ICache&lt;TK, TV&gt;</a>.</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">CacheLinqExtensions</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <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.Linq.html">Apache.Ignite.Linq</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Linq.dll</h6>
  <h5 id="Apache_Ignite_Linq_CacheLinqExtensions_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static class CacheLinqExtensions</code></pre>
  </div>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.AsCacheQueryable*"></a>
  <h4 id="Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Cache_ICache___0___1__" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.AsCacheQueryable``2(Apache.Ignite.Core.Cache.ICache{``0,``1})">AsCacheQueryable&lt;TKey, TValue&gt;(ICache&lt;TKey, TValue&gt;)</h4>
  <div class="markdown level1 summary"><p>Gets an <span class="xref">System.Linq.IQueryable&lt;T&gt;</span> instance over this cache.
<p>
Resulting query will be translated to cache SQL query and executed over the cache instance
via <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html#Apache_Ignite_Core_Cache_ICache_2_Query_Apache_Ignite_Core_Cache_Query_SqlFieldsQuery_">Query(SqlFieldsQuery)</a>.
<p>
Result of this method (and subsequent query) can be cast to <a class="xref" href="Apache.Ignite.Linq.ICacheQueryable.html">ICacheQueryable</a>
for introspection, or converted with <a class="xref" href="Apache.Ignite.Linq.CacheLinqExtensions.html#Apache_Ignite_Linq_CacheLinqExtensions_ToCacheQueryable__1_System_Linq_IQueryable___0__">ToCacheQueryable&lt;T&gt;(IQueryable&lt;T&gt;)</a> extension method.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IQueryable&lt;ICacheEntry&lt;TKey, TValue&gt;&gt; AsCacheQueryable&lt;TKey, TValue&gt;(this ICache&lt;TKey, TValue&gt; cache)</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.Cache.ICache-2.html">ICache</a>&lt;TKey, TValue&gt;</td>
        <td><span class="parametername">cache</span></td>
        <td><p>The cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</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.Linq.IQueryable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TKey, TValue&gt;&gt;</td>
        <td><p><span class="xref">System.Linq.IQueryable&lt;T&gt;</span> instance over this cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td><p>The type of the key.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td><p>The type of the value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.AsCacheQueryable*"></a>
  <h4 id="Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Cache_ICache___0___1__Apache_Ignite_Linq_QueryOptions_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.AsCacheQueryable``2(Apache.Ignite.Core.Cache.ICache{``0,``1},Apache.Ignite.Linq.QueryOptions)">AsCacheQueryable&lt;TKey, TValue&gt;(ICache&lt;TKey, TValue&gt;, QueryOptions)</h4>
  <div class="markdown level1 summary"><p>Gets an <span class="xref">System.Linq.IQueryable&lt;T&gt;</span> instance over this cache.
<p>
Resulting query will be translated to cache SQL query and executed over the cache instance
via <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html#Apache_Ignite_Core_Cache_ICache_2_Query_Apache_Ignite_Core_Cache_Query_SqlFieldsQuery_">Query(SqlFieldsQuery)</a>.
depending on requested result.
<p>
Result of this method (and subsequent query) can be cast to <a class="xref" href="Apache.Ignite.Linq.ICacheQueryable.html">ICacheQueryable</a> for introspection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IQueryable&lt;ICacheEntry&lt;TKey, TValue&gt;&gt; AsCacheQueryable&lt;TKey, TValue&gt;(this ICache&lt;TKey, TValue&gt; cache, QueryOptions queryOptions)</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.Cache.ICache-2.html">ICache</a>&lt;TKey, TValue&gt;</td>
        <td><span class="parametername">cache</span></td>
        <td><p>The cache.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Linq.QueryOptions.html">QueryOptions</a></td>
        <td><span class="parametername">queryOptions</span></td>
        <td><p>The query options.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</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.Linq.IQueryable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TKey, TValue&gt;&gt;</td>
        <td><p><span class="xref">System.Linq.IQueryable&lt;T&gt;</span> instance over this cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td><p>The type of the key.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td><p>The type of the value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.AsCacheQueryable*"></a>
  <h4 id="Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Cache_ICache___0___1__System_Boolean_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.AsCacheQueryable``2(Apache.Ignite.Core.Cache.ICache{``0,``1},System.Boolean)">AsCacheQueryable&lt;TKey, TValue&gt;(ICache&lt;TKey, TValue&gt;, Boolean)</h4>
  <div class="markdown level1 summary"><p>Gets an <span class="xref">System.Linq.IQueryable&lt;T&gt;</span> instance over this cache.
<p>
Resulting query will be translated to cache SQL query and executed over the cache instance
via <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html#Apache_Ignite_Core_Cache_ICache_2_Query_Apache_Ignite_Core_Cache_Query_SqlFieldsQuery_">Query(SqlFieldsQuery)</a>.
depending on requested result.
<p>
Result of this method (and subsequent query) can be cast to <a class="xref" href="Apache.Ignite.Linq.ICacheQueryable.html">ICacheQueryable</a> for introspection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IQueryable&lt;ICacheEntry&lt;TKey, TValue&gt;&gt; AsCacheQueryable&lt;TKey, TValue&gt;(this ICache&lt;TKey, TValue&gt; cache, bool local)</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.Cache.ICache-2.html">ICache</a>&lt;TKey, TValue&gt;</td>
        <td><span class="parametername">cache</span></td>
        <td><p>The cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">local</span></td>
        <td><p>Local flag. When set query will be executed only on local node, so only local
entries will be returned as query result.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</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.Linq.IQueryable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TKey, TValue&gt;&gt;</td>
        <td><p><span class="xref">System.Linq.IQueryable&lt;T&gt;</span> instance over this cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td><p>The type of the key.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td><p>The type of the value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.AsCacheQueryable*"></a>
  <h4 id="Apache_Ignite_Linq_CacheLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Cache_ICache___0___1__System_Boolean_System_String_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.AsCacheQueryable``2(Apache.Ignite.Core.Cache.ICache{``0,``1},System.Boolean,System.String)">AsCacheQueryable&lt;TKey, TValue&gt;(ICache&lt;TKey, TValue&gt;, Boolean, String)</h4>
  <div class="markdown level1 summary"><p>Gets an <span class="xref">System.Linq.IQueryable&lt;T&gt;</span> instance over this cache.
<p>
Resulting query will be translated to cache SQL query and executed over the cache instance
via <a class="xref" href="Apache.Ignite.Core.Cache.ICache-2.html#Apache_Ignite_Core_Cache_ICache_2_Query_Apache_Ignite_Core_Cache_Query_SqlFieldsQuery_">Query(SqlFieldsQuery)</a>.
depending on requested result.
<p>
Result of this method (and subsequent query) can be cast to <a class="xref" href="Apache.Ignite.Linq.ICacheQueryable.html">ICacheQueryable</a> for introspection.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static IQueryable&lt;ICacheEntry&lt;TKey, TValue&gt;&gt; AsCacheQueryable&lt;TKey, TValue&gt;(this ICache&lt;TKey, TValue&gt; cache, bool local, string tableName)</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.Cache.ICache-2.html">ICache</a>&lt;TKey, TValue&gt;</td>
        <td><span class="parametername">cache</span></td>
        <td><p>The cache.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">local</span></td>
        <td><p>Local flag. When set query will be executed only on local node, so only local
entries will be returned as query result.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">tableName</span></td>
        <td><p>Name of the table.
<p>
Table name is equal to short class name of a cache value.
When a cache has only one type of values, or only one <a class="xref" href="Apache.Ignite.Core.Cache.Configuration.QueryEntity.html">QueryEntity</a> defined,
table name will be inferred and can be omitted.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</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.Linq.IQueryable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TKey, TValue&gt;&gt;</td>
        <td><p><span class="xref">System.Linq.IQueryable&lt;T&gt;</span> instance over this cache.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td><p>The type of the key.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td><p>The type of the value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CacheLinqExtensions_RemoveAll_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.RemoveAll*"></a>
  <h4 id="Apache_Ignite_Linq_CacheLinqExtensions_RemoveAll__2_System_Linq_IQueryable_Apache_Ignite_Core_Cache_ICacheEntry___0___1___" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.RemoveAll``2(System.Linq.IQueryable{Apache.Ignite.Core.Cache.ICacheEntry{``0,``1}})">RemoveAll&lt;TKey, TValue&gt;(IQueryable&lt;ICacheEntry&lt;TKey, TValue&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Removes all rows that are matched by the specified query.
<p>
This method results in &quot;DELETE FROM&quot; distributed SQL query, performing bulk delete
(as opposed to fetching all rows locally).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int RemoveAll&lt;TKey, TValue&gt;(this IQueryable&lt;ICacheEntry&lt;TKey, TValue&gt;&gt; query)</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.Linq.IQueryable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TKey, TValue&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</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.Int32</span></td>
        <td><p>Affected row count.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td><p>Key type.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td><p>Value type.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CacheLinqExtensions_RemoveAll_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.RemoveAll*"></a>
  <h4 id="Apache_Ignite_Linq_CacheLinqExtensions_RemoveAll__2_System_Linq_IQueryable_Apache_Ignite_Core_Cache_ICacheEntry___0___1___System_Linq_Expressions_Expression_System_Func_Apache_Ignite_Core_Cache_ICacheEntry___0___1__System_Boolean___" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.RemoveAll``2(System.Linq.IQueryable{Apache.Ignite.Core.Cache.ICacheEntry{``0,``1}},System.Linq.Expressions.Expression{System.Func{Apache.Ignite.Core.Cache.ICacheEntry{``0,``1},System.Boolean}})">RemoveAll&lt;TKey, TValue&gt;(IQueryable&lt;ICacheEntry&lt;TKey, TValue&gt;&gt;, Expression&lt;Func&lt;ICacheEntry&lt;TKey, TValue&gt;, Boolean&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Deletes all rows that are matched by the specified query.
<p>
This method results in &quot;DELETE FROM&quot; distributed SQL query, performing bulk delete
(as opposed to fetching all rows locally).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int RemoveAll&lt;TKey, TValue&gt;(this IQueryable&lt;ICacheEntry&lt;TKey, TValue&gt;&gt; query, Expression&lt;Func&lt;ICacheEntry&lt;TKey, TValue&gt;, bool&gt;&gt; predicate)</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.Linq.IQueryable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TKey, TValue&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Linq.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TKey, TValue&gt;, <span class="xref">System.Boolean</span>&gt;&gt;</td>
        <td><span class="parametername">predicate</span></td>
        <td><p>The predicate.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</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.Int32</span></td>
        <td><p>Affected row count.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td><p>Key type.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td><p>Value type.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CacheLinqExtensions_ToCacheQueryable_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.ToCacheQueryable*"></a>
  <h4 id="Apache_Ignite_Linq_CacheLinqExtensions_ToCacheQueryable__1_System_Linq_IQueryable___0__" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.ToCacheQueryable``1(System.Linq.IQueryable{``0})">ToCacheQueryable&lt;T&gt;(IQueryable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Casts this query to <a class="xref" href="Apache.Ignite.Linq.ICacheQueryable.html">ICacheQueryable</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 ICacheQueryable ToCacheQueryable&lt;T&gt;(this IQueryable&lt;T&gt; query)</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.Linq.IQueryable</span>&lt;T&gt;</td>
        <td><span class="parametername">query</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Linq.ICacheQueryable.html">ICacheQueryable</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CacheLinqExtensions_UpdateAll_" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.UpdateAll*"></a>
  <h4 id="Apache_Ignite_Linq_CacheLinqExtensions_UpdateAll__2_System_Linq_IQueryable_Apache_Ignite_Core_Cache_ICacheEntry___0___1___System_Linq_Expressions_Expression_System_Func_Apache_Ignite_Linq_IUpdateDescriptor___0___1__Apache_Ignite_Linq_IUpdateDescriptor___0___1____" data-uid="Apache.Ignite.Linq.CacheLinqExtensions.UpdateAll``2(System.Linq.IQueryable{Apache.Ignite.Core.Cache.ICacheEntry{``0,``1}},System.Linq.Expressions.Expression{System.Func{Apache.Ignite.Linq.IUpdateDescriptor{``0,``1},Apache.Ignite.Linq.IUpdateDescriptor{``0,``1}}})">UpdateAll&lt;TKey, TValue&gt;(IQueryable&lt;ICacheEntry&lt;TKey, TValue&gt;&gt;, Expression&lt;Func&lt;IUpdateDescriptor&lt;TKey, TValue&gt;, IUpdateDescriptor&lt;TKey, TValue&gt;&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Updates all rows that are matched by the specified query.
<p>
This method results in &quot;UPDATE&quot; distributed SQL query, performing bulk update
(as opposed to fetching all rows locally).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int UpdateAll&lt;TKey, TValue&gt;(this IQueryable&lt;ICacheEntry&lt;TKey, TValue&gt;&gt; query, Expression&lt;Func&lt;IUpdateDescriptor&lt;TKey, TValue&gt;, IUpdateDescriptor&lt;TKey, TValue&gt;&gt;&gt; updateDescription)</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.Linq.IQueryable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.ICacheEntry-2.html">ICacheEntry</a>&lt;TKey, TValue&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Linq.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;<a class="xref" href="Apache.Ignite.Linq.IUpdateDescriptor-2.html">IUpdateDescriptor</a>&lt;TKey, TValue&gt;, <a class="xref" href="Apache.Ignite.Linq.IUpdateDescriptor-2.html">IUpdateDescriptor</a>&lt;TKey, TValue&gt;&gt;&gt;</td>
        <td><span class="parametername">updateDescription</span></td>
        <td><p>The update description.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</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.Int32</span></td>
        <td><p>Affected row count.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TKey</span></td>
        <td><p>Key type.</p>
</td>
      </tr>
      <tr>
        <td><span class="parametername">TValue</span></td>
        <td><p>Value type.</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>
