Dotazy v technologii LINQ to Entities

Dotaz je výraz, který načítá data ze zdroje dat. Dotazy se obvykle vyjadřují ve specializovaném dotazovacím jazyce, jako je SQL pro relační databáze a XQuery pro XML. Vývojáři se proto museli naučit nový dotazovací jazyk pro každý typ zdroje dat nebo formátu dat, který dotazují. Jazykově integrovaný dotaz (LINQ) nabízí jednodušší konsis režim stanu l pro práci s daty napříč různými druhy zdrojů a formátů dat. V dotazu LINQ vždy pracujete s programovacími objekty.

Operace dotazu LINQ se skládá ze tří akcí: získání zdroje dat nebo zdrojů, vytvoření dotazu a spuštění dotazu.

Zdroje dat, které implementují IEnumerable<T> obecné rozhraní nebo IQueryable<T> obecné rozhraní, je možné dotazovat prostřednictvím LINQ. Instance obecné ObjectQuery<T> třídy, která implementuje obecné IQueryable<T> rozhraní, slouží jako zdroj dat pro LINQ to Entities dotazy. Obecná ObjectQuery<T> třída představuje dotaz, který vrací kolekci nulových nebo více typed objektů. Kompilátoru můžete také umožnit odvození typu entity pomocí klíčového slova var jazyka C# (Dim v jazyce Visual Basic).

V dotazu zadáte přesně informace, které chcete načíst ze zdroje dat. Dotaz může také určit, jak se mají tyto informace řadit, seskupit a tvarovat před vrácením. V LINQ je dotaz uložen v proměnné. Pokud dotaz vrátí sekvenci hodnot, musí být samotná proměnná dotazu dotazovatelným typem. Tato proměnná dotazu nevyžaduje žádnou akci a nevrací žádná data; ukládá pouze informace o dotazu. Po vytvoření dotazu je nutné tento dotaz spustit, aby se načetla všechna data.

Syntaxe dotazů

Dotazy LINQ to Entities se dají skládat ve dvou různých syntaxích: syntaxi výrazů dotazů a syntaxi dotazů založenou na metodách. Syntaxe výrazů dotazu je nová v jazyce C# 3.0 a Visual Basic 9.0 a skládá se ze sady klauzulí napsaných v deklarativní syntaxi podobné jazyku Transact-SQL nebo XQuery. Modul CLR (Common Language Runtime) rozhraní .NET Framework však nemůže přečíst samotnou syntaxi výrazu dotazu. Výrazy dotazu se proto v době kompilace překládají na něco, čemu CLR rozumí: volání metody. Tyto metody se označují jako standardní operátory dotazu. Jako vývojář máte možnost je volat přímo pomocí syntaxe metody místo syntaxe dotazu. Další informace naleznete v tématu Syntaxe dotazu a syntaxe metody v LINQ.

Syntaxe výrazu dotazu

Výrazy dotazů jsou deklarativní syntaxe dotazu. Tato syntaxe umožňuje vývojáři psát dotazy v jazyce vysoké úrovně, který je formátovaný podobně jako Transact-SQL. Pomocí syntaxe výrazů dotazu můžete provádět i složité operace filtrování, řazení a seskupování u zdrojů dat s minimálním kódem. Další informace naleznete v tématu Základní operace dotazu (Visual Basic). Příklady, které ukazují, jak používat syntaxi výrazů dotazu, najdete v následujících tématech:

Syntaxe dotazů založená na metodách

Dalším způsobem, jak vytvářet dotazy LINQ to Entities, je použití dotazů založených na metodách. Syntaxe dotazu založená na metodě je posloupnost volání přímých metod do metod operátoru LINQ, která předává výrazy lambda jako parametry. Další informace najdete v tématu Výrazy lambda. Příklady, které ukazují, jak používat syntaxi založenou na metodách, najdete v následujících tématech:

Viz také