﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/dotnetdoc/api/Apache.Ignite.Linq.CompiledQuery.html" />
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class CompiledQuery
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class CompiledQuery
   | 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.CompiledQuery">
  
  
  <h1 id="Apache_Ignite_Linq_CompiledQuery" data-uid="Apache.Ignite.Linq.CompiledQuery" class="text-break">Class CompiledQuery
  </h1>
  <div class="markdown level0 summary"><p>Represents a compiled cache query.</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">CompiledQuery</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_CompiledQuery_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static class CompiledQuery</code></pre>
  </div>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Linq_CompiledQuery_Compile_" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile*"></a>
  <h4 id="Apache_Ignite_Linq_CompiledQuery_Compile__1_System_Linq_Expressions_Expression_System_Func_System_Linq_IQueryable___0____" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile``1(System.Linq.Expressions.Expression{System.Func{System.Linq.IQueryable{``0}}})">Compile&lt;T&gt;(Expression&lt;Func&lt;IQueryable&lt;T&gt;&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a new delegate that represents the compiled cache query.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Func&lt;IQueryCursor&lt;T&gt;&gt; Compile&lt;T&gt;(Expression&lt;Func&lt;IQueryable&lt;T&gt;&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.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;<span class="xref">System.Linq.IQueryable</span>&lt;T&gt;&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query to compile.</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.Func</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;T&gt;&gt;</td>
        <td><p>Delegate that represents the compiled cache query.</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">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CompiledQuery_Compile_" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile*"></a>
  <h4 id="Apache_Ignite_Linq_CompiledQuery_Compile__1_System_Linq_IQueryable___0__" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile``1(System.Linq.IQueryable{``0})">Compile&lt;T&gt;(IQueryable&lt;T&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a new delegate that represents the compiled cache query with any number of arguments.
<p>
This method differs from other Compile methods in that it takes in <a class="xref" href="Apache.Ignite.Linq.ICacheQueryable.html">ICacheQueryable</a> directly,
and returns a delegate that takes an array of parameters.
It is up to the user to provide query arguments in correct order.
<p>
This method also imposes no restrictions on where the query comes from (in contrary to other methods).</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static CompiledQueryFunc&lt;T&gt; Compile&lt;T&gt;(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><p>The query to compile.</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><a class="xref" href="Apache.Ignite.Linq.CompiledQueryFunc-1.html">CompiledQueryFunc</a>&lt;T&gt;</td>
        <td><p>Delegate that represents the compiled cache query.</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">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CompiledQuery_Compile_" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile*"></a>
  <h4 id="Apache_Ignite_Linq_CompiledQuery_Compile__2_System_Linq_Expressions_Expression_System_Func___1_System_Linq_IQueryable___0____" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile``2(System.Linq.Expressions.Expression{System.Func{``1,System.Linq.IQueryable{``0}}})">Compile&lt;T, T1&gt;(Expression&lt;Func&lt;T1, IQueryable&lt;T&gt;&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a new delegate that represents the compiled cache query.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Func&lt;T1, IQueryCursor&lt;T&gt;&gt; Compile&lt;T, T1&gt;(Expression&lt;Func&lt;T1, IQueryable&lt;T&gt;&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.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;T1, <span class="xref">System.Linq.IQueryable</span>&lt;T&gt;&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query to compile.</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.Func</span>&lt;T1, <a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;T&gt;&gt;</td>
        <td><p>Delegate that represents the compiled cache query.</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">T</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T1</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CompiledQuery_Compile_" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile*"></a>
  <h4 id="Apache_Ignite_Linq_CompiledQuery_Compile__3_System_Linq_Expressions_Expression_System_Func___1___2_System_Linq_IQueryable___0____" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile``3(System.Linq.Expressions.Expression{System.Func{``1,``2,System.Linq.IQueryable{``0}}})">Compile&lt;T, T1, T2&gt;(Expression&lt;Func&lt;T1, T2, IQueryable&lt;T&gt;&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a new delegate that represents the compiled cache query.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Func&lt;T1, T2, IQueryCursor&lt;T&gt;&gt; Compile&lt;T, T1, T2&gt;(Expression&lt;Func&lt;T1, T2, IQueryable&lt;T&gt;&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.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;T1, T2, <span class="xref">System.Linq.IQueryable</span>&lt;T&gt;&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query to compile.</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.Func</span>&lt;T1, T2, <a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;T&gt;&gt;</td>
        <td><p>Delegate that represents the compiled cache query.</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">T</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T1</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T2</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CompiledQuery_Compile_" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile*"></a>
  <h4 id="Apache_Ignite_Linq_CompiledQuery_Compile__4_System_Linq_Expressions_Expression_System_Func___1___2___3_System_Linq_IQueryable___0____" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile``4(System.Linq.Expressions.Expression{System.Func{``1,``2,``3,System.Linq.IQueryable{``0}}})">Compile&lt;T, T1, T2, T3&gt;(Expression&lt;Func&lt;T1, T2, T3, IQueryable&lt;T&gt;&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a new delegate that represents the compiled cache query.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Func&lt;T1, T2, T3, IQueryCursor&lt;T&gt;&gt; Compile&lt;T, T1, T2, T3&gt;(Expression&lt;Func&lt;T1, T2, T3, IQueryable&lt;T&gt;&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.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;T1, T2, T3, <span class="xref">System.Linq.IQueryable</span>&lt;T&gt;&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query to compile.</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.Func</span>&lt;T1, T2, T3, <a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;T&gt;&gt;</td>
        <td><p>Delegate that represents the compiled cache query.</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">T</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T1</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T2</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T3</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CompiledQuery_Compile_" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile*"></a>
  <h4 id="Apache_Ignite_Linq_CompiledQuery_Compile__5_System_Linq_Expressions_Expression_System_Func___1___2___3___4_System_Linq_IQueryable___0____" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile``5(System.Linq.Expressions.Expression{System.Func{``1,``2,``3,``4,System.Linq.IQueryable{``0}}})">Compile&lt;T, T1, T2, T3, T4&gt;(Expression&lt;Func&lt;T1, T2, T3, T4, IQueryable&lt;T&gt;&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a new delegate that represents the compiled cache query.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Func&lt;T1, T2, T3, T4, IQueryCursor&lt;T&gt;&gt; Compile&lt;T, T1, T2, T3, T4&gt;(Expression&lt;Func&lt;T1, T2, T3, T4, IQueryable&lt;T&gt;&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.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;T1, T2, T3, T4, <span class="xref">System.Linq.IQueryable</span>&lt;T&gt;&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query to compile.</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.Func</span>&lt;T1, T2, T3, T4, <a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;T&gt;&gt;</td>
        <td><p>Delegate that represents the compiled cache query.</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">T</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T1</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T2</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T3</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T4</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CompiledQuery_Compile_" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile*"></a>
  <h4 id="Apache_Ignite_Linq_CompiledQuery_Compile__6_System_Linq_Expressions_Expression_System_Func___1___2___3___4___5_System_Linq_IQueryable___0____" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile``6(System.Linq.Expressions.Expression{System.Func{``1,``2,``3,``4,``5,System.Linq.IQueryable{``0}}})">Compile&lt;T, T1, T2, T3, T4, T5&gt;(Expression&lt;Func&lt;T1, T2, T3, T4, T5, IQueryable&lt;T&gt;&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a new delegate that represents the compiled cache query.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Func&lt;T1, T2, T3, T4, T5, IQueryCursor&lt;T&gt;&gt; Compile&lt;T, T1, T2, T3, T4, T5&gt;(Expression&lt;Func&lt;T1, T2, T3, T4, T5, IQueryable&lt;T&gt;&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.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;T1, T2, T3, T4, T5, <span class="xref">System.Linq.IQueryable</span>&lt;T&gt;&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query to compile.</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.Func</span>&lt;T1, T2, T3, T4, T5, <a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;T&gt;&gt;</td>
        <td><p>Delegate that represents the compiled cache query.</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">T</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T1</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T2</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T3</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T4</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T5</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CompiledQuery_Compile_" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile*"></a>
  <h4 id="Apache_Ignite_Linq_CompiledQuery_Compile__7_System_Linq_Expressions_Expression_System_Func___1___2___3___4___5___6_System_Linq_IQueryable___0____" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile``7(System.Linq.Expressions.Expression{System.Func{``1,``2,``3,``4,``5,``6,System.Linq.IQueryable{``0}}})">Compile&lt;T, T1, T2, T3, T4, T5, T6&gt;(Expression&lt;Func&lt;T1, T2, T3, T4, T5, T6, IQueryable&lt;T&gt;&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a new delegate that represents the compiled cache query.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Func&lt;T1, T2, T3, T4, T5, T6, IQueryCursor&lt;T&gt;&gt; Compile&lt;T, T1, T2, T3, T4, T5, T6&gt;(Expression&lt;Func&lt;T1, T2, T3, T4, T5, T6, IQueryable&lt;T&gt;&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.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;T1, T2, T3, T4, T5, T6, <span class="xref">System.Linq.IQueryable</span>&lt;T&gt;&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query to compile.</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.Func</span>&lt;T1, T2, T3, T4, T5, T6, <a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;T&gt;&gt;</td>
        <td><p>Delegate that represents the compiled cache query.</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">T</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T1</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T2</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T3</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T4</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T5</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T6</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CompiledQuery_Compile_" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile*"></a>
  <h4 id="Apache_Ignite_Linq_CompiledQuery_Compile__8_System_Linq_Expressions_Expression_System_Func___1___2___3___4___5___6___7_System_Linq_IQueryable___0____" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile``8(System.Linq.Expressions.Expression{System.Func{``1,``2,``3,``4,``5,``6,``7,System.Linq.IQueryable{``0}}})">Compile&lt;T, T1, T2, T3, T4, T5, T6, T7&gt;(Expression&lt;Func&lt;T1, T2, T3, T4, T5, T6, T7, IQueryable&lt;T&gt;&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a new delegate that represents the compiled cache query.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Func&lt;T1, T2, T3, T4, T5, T6, T7, IQueryCursor&lt;T&gt;&gt; Compile&lt;T, T1, T2, T3, T4, T5, T6, T7&gt;(Expression&lt;Func&lt;T1, T2, T3, T4, T5, T6, T7, IQueryable&lt;T&gt;&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.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;T1, T2, T3, T4, T5, T6, T7, <span class="xref">System.Linq.IQueryable</span>&lt;T&gt;&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query to compile.</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.Func</span>&lt;T1, T2, T3, T4, T5, T6, T7, <a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;T&gt;&gt;</td>
        <td><p>Delegate that represents the compiled cache query.</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">T</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T1</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T2</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T3</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T4</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T5</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T6</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T7</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Linq_CompiledQuery_Compile_" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile*"></a>
  <h4 id="Apache_Ignite_Linq_CompiledQuery_Compile__9_System_Linq_Expressions_Expression_System_Func___1___2___3___4___5___6___7___8_System_Linq_IQueryable___0____" data-uid="Apache.Ignite.Linq.CompiledQuery.Compile``9(System.Linq.Expressions.Expression{System.Func{``1,``2,``3,``4,``5,``6,``7,``8,System.Linq.IQueryable{``0}}})">Compile&lt;T, T1, T2, T3, T4, T5, T6, T7, T8&gt;(Expression&lt;Func&lt;T1, T2, T3, T4, T5, T6, T7, T8, IQueryable&lt;T&gt;&gt;&gt;)</h4>
  <div class="markdown level1 summary"><p>Creates a new delegate that represents the compiled cache query.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static Func&lt;T1, T2, T3, T4, T5, T6, T7, T8, IQueryCursor&lt;T&gt;&gt; Compile&lt;T, T1, T2, T3, T4, T5, T6, T7, T8&gt;(Expression&lt;Func&lt;T1, T2, T3, T4, T5, T6, T7, T8, IQueryable&lt;T&gt;&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.Expressions.Expression</span>&lt;<span class="xref">System.Func</span>&lt;T1, T2, T3, T4, T5, T6, T7, T8, <span class="xref">System.Linq.IQueryable</span>&lt;T&gt;&gt;&gt;</td>
        <td><span class="parametername">query</span></td>
        <td><p>The query to compile.</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.Func</span>&lt;T1, T2, T3, T4, T5, T6, T7, T8, <a class="xref" href="Apache.Ignite.Core.Cache.Query.IQueryCursor-1.html">IQueryCursor</a>&lt;T&gt;&gt;</td>
        <td><p>Delegate that represents the compiled cache query.</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">T</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T1</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T2</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T3</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T4</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T5</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T6</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T7</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="parametername">T8</span></td>
        <td></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>
