Understanding Deferred Execution

When the Common Language Runtime (CLR) encounters a LINQ query, the query is not executed immediately. LINQ queries are executed only when they are effectively used. This concept is known as deferred execution and is part of all LINQ providers you encounter, both standard and custom ones. For example, consider the query that is an example in the previous discussion:

Dim query = From prod In products            Where prod.UnitsInStock > 10 _            And prod.Discontinued = False            Order By prod.UnitPrice            Select prod

This query is not executed until you effectively use its result.

For example, iterations cause the query to be executed:

Get Visual Basic 2015 Unleashed now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.