﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.5.0/dotnetdoc/api/Apache.Ignite.Linq.CacheLinqExtensions.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

    <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>
  (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.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 - 2018 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>
