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

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class CacheClientLinqExtensions
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class CacheClientLinqExtensions
   | 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.CacheClientLinqExtensions">
  
  
  <h1 id="Apache_Ignite_Linq_CacheClientLinqExtensions" data-uid="Apache.Ignite.Linq.CacheClientLinqExtensions" class="text-break">Class CacheClientLinqExtensions
  </h1>
  <div class="markdown level0 summary"><p>Extensions methods for <a class="xref" href="Apache.Ignite.Core.Client.Cache.ICacheClient-2.html">ICacheClient&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">CacheClientLinqExtensions</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_CacheClientLinqExtensions_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static class CacheClientLinqExtensions</code></pre>
  </div>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Linq_CacheClientLinqExtensions_AsCacheQueryable_" data-uid="Apache.Ignite.Linq.CacheClientLinqExtensions.AsCacheQueryable*"></a>
  <h4 id="Apache_Ignite_Linq_CacheClientLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Client_Cache_ICacheClient___0___1__" data-uid="Apache.Ignite.Linq.CacheClientLinqExtensions.AsCacheQueryable``2(Apache.Ignite.Core.Client.Cache.ICacheClient{``0,``1})">AsCacheQueryable&lt;TKey, TValue&gt;(ICacheClient&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 either <a class="xref" href="Apache.Ignite.Core.Client.Cache.ICacheClient-2.html#Apache_Ignite_Core_Client_Cache_ICacheClient_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 ICacheClient&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.Client.Cache.ICacheClient-2.html">ICacheClient</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_CacheClientLinqExtensions_AsCacheQueryable_" data-uid="Apache.Ignite.Linq.CacheClientLinqExtensions.AsCacheQueryable*"></a>
  <h4 id="Apache_Ignite_Linq_CacheClientLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Client_Cache_ICacheClient___0___1__Apache_Ignite_Linq_QueryOptions_" data-uid="Apache.Ignite.Linq.CacheClientLinqExtensions.AsCacheQueryable``2(Apache.Ignite.Core.Client.Cache.ICacheClient{``0,``1},Apache.Ignite.Linq.QueryOptions)">AsCacheQueryable&lt;TKey, TValue&gt;(ICacheClient&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 either <a class="xref" href="Apache.Ignite.Core.Client.Cache.ICacheClient-2.html#Apache_Ignite_Core_Client_Cache_ICacheClient_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.</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 ICacheClient&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.Client.Cache.ICacheClient-2.html">ICacheClient</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_CacheClientLinqExtensions_AsCacheQueryable_" data-uid="Apache.Ignite.Linq.CacheClientLinqExtensions.AsCacheQueryable*"></a>
  <h4 id="Apache_Ignite_Linq_CacheClientLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Client_Cache_ICacheClient___0___1__System_Boolean_" data-uid="Apache.Ignite.Linq.CacheClientLinqExtensions.AsCacheQueryable``2(Apache.Ignite.Core.Client.Cache.ICacheClient{``0,``1},System.Boolean)">AsCacheQueryable&lt;TKey, TValue&gt;(ICacheClient&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 either <a class="xref" href="Apache.Ignite.Core.Client.Cache.ICacheClient-2.html#Apache_Ignite_Core_Client_Cache_ICacheClient_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.</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 ICacheClient&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.Client.Cache.ICacheClient-2.html">ICacheClient</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_CacheClientLinqExtensions_AsCacheQueryable_" data-uid="Apache.Ignite.Linq.CacheClientLinqExtensions.AsCacheQueryable*"></a>
  <h4 id="Apache_Ignite_Linq_CacheClientLinqExtensions_AsCacheQueryable__2_Apache_Ignite_Core_Client_Cache_ICacheClient___0___1__System_Boolean_System_String_" data-uid="Apache.Ignite.Linq.CacheClientLinqExtensions.AsCacheQueryable``2(Apache.Ignite.Core.Client.Cache.ICacheClient{``0,``1},System.Boolean,System.String)">AsCacheQueryable&lt;TKey, TValue&gt;(ICacheClient&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 either <a class="xref" href="Apache.Ignite.Core.Client.Cache.ICacheClient-2.html#Apache_Ignite_Core_Client_Cache_ICacheClient_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.</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 ICacheClient&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.Client.Cache.ICacheClient-2.html">ICacheClient</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>
</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>
