Terminology

Element (LINQ) An item in a sequence.

Interpreted query A query that is interpreted at runtime, works on a remote-sequence, and operates on a IQueryable<T> sequence.

LINQ-to-objects query A query that runs on a local sequence.

Local query A query that operates on an IEnumerable<T> sequence and is compiled into the resulting assembly at compile time.

Local Sequence A sequence of objects that are in memory.

Remote Sequence A sequence of objects that are on a remote source.

Sequence (LINQ) A concept that represents a list of items, with each item in the list being an element.

Facts, Thoughts and Opinions

LINQ Interpreted Queries Overview

LINQ provides two parallel architectures: local queries for local object collections, and interpreted queries for remote data sources. Local queries operate over collections implementing IEnumerable<>. Local queries resolve to query operators in the Enumerable class, which in turn resolve to chains of decorator sequences. The delegates that they accept—whether expressed in comprehension syntax, lambda syntax, or traditional delegates—are fully local to Intermediate Language (IL) code just as any other C# method.

By contrast, interpreted queries are descriptive. They operate over sequences that implement IQueryable<>, and they resolve to the query operators in the Queryable class, which emit expression trees that are interpreted at runtime.

LINQ Overview

LINQ defines a set of general purpose standard query operators that allow traversal, filter, and projection operations to be expressed in a direct yet declarative way in any .NET-based programming language. The standard query operators allow queries to be applied to any IEnumerable<T>-based information source. LINQ allows third parties to augment the set of standard query operators with new domain-specific operators that are appropriate for the target domain or technology. More importantly, third parties are also free to replace the standard query operators with their own implementations that provide additional services such as remote evaluation, query translation, optimization, and so on. By adhering to the conventions of the LINQ pattern, such implementations enjoy the same language integration and tool support as the standard query operators.

Images

[[/div]]
  •   Subtopics

  •   Writings