Understanding ClientContext.Load's Parameters
<p>I have some code which makes calls to a SharePoint Managed Metadata Service that starts off like this : </p>

<pre><code>var clientContext = new ClientContext("http://mysharepointsite/")
    { AuthenticationMode = ClientAuthenticationMode.Default};

var taxonomySession = TaxonomySession.GetTaxonomySession(clientContext);
var termStore = taxonomySession.GetDefaultSiteCollectionTermStore();
</code></pre>

<p>which I have no problem with. However, after this we have : </p>

<pre><code>clientContext.Load(termStore,
        store =&gt; store.Name,
        store =&gt; store.Groups.Include(
            group =&gt; group.Name,
            group =&gt; group.TermSets.Include(
                termSet =&gt; termSet.Name,
                termSet =&gt; termSet.Terms.Include(
                    term =&gt; term.Name)
            )
        )
);
</code></pre>

<p>Can anyone please help me understand what is going on here? </p>

<ul>
<li><p>At first I thought this was some kind of LINQ query, but then I would expect the class to have the line <code>using System.Linq;</code>, which it does not. </p></li>
<li><p>I just noticed that in Visual Studio there is some IntelliSense which says the call is structured like this :  <code>void ClientruntimeContext.Load&lt;T&gt;(T clientObject, params System.Linq.Expressions.Expression&lt;Func&lt;T, object&gt;&gt;[] retrievals)</code> - which makes it seem like it is using Linq in some way</p></li>
<li><p>I understand that the code is in some way "loading" the termstore data in the managed metadata service from the given sharepoint site, but I don't quite understand what exactly that syntax is doing.</p></li>
<li><p>I got the code sample from <a href="https://msdn.microsoft.com/en-us/library/office/dn904534.aspx" rel="nofollow">here</a>, and it does exactly what I want it to do but I would feel a lot more comfortable if I actually understood that syntax! </p></li>
<li><p><a href="https://msdn.microsoft.com/en-us/library/ee536388.aspx" rel="nofollow">The documentation</a> was also not particularly helpful, as it just defines <code>Load()</code>s parameters as <code>&lt;T&gt;</code>, which could be anything!</p></li>
</ul>

<p>Any advice or recommended reading is much appreciated, thank you!</p>