Sdílet prostřednictvím


Dotazy LINQ to SQL

Dotazy LINQ to SQL definujete pomocí stejné syntaxe jako v LINQ. Jediným rozdílem je, že objekty odkazované v dotazech jsou mapovány na prvky v databázi. Další informace najdete v tématu Úvod k dotazům LINQ (C#).

LINQ to SQL přeloží dotazy, které zapíšete do ekvivalentních dotazů SQL, a odešle je na server pro zpracování. Konkrétněji vaše aplikace k vyžádání provádění dotazů používá rozhraní LINQ to SQL API. Zprostředkovatel LINQ to SQL pak transformuje dotaz na text SQL a deleguje provádění na zprostředkovatele ADO. Zprostředkovatel ADO vrátí výsledky dotazu jako DataReader. Zprostředkovatel LINQ to SQL přeloží výsledky ADO do IQueryable kolekce uživatelských objektů.

Poznámka:

Většina metod a operátorů v předdefinovaných typech rozhraní .NET Framework má přímé překlady do SQL. Ty, které LINQ nemůže přeložit, generují výjimky za běhu programu. Další informace najdete v tématu SQL-CLR Mapování typů.

Následující tabulka ukazuje podobnosti a rozdíly mezi položkami dotazů LINQ a LINQ to SQL.

Položka Dotaz LINQ Dotaz LINQ to SQL
Návratový typ místní proměnné, která obsahuje dotaz (pro dotazy, které vracejí sekvence) Generický IEnumerable Generický IQueryable
Určení zdroje dat Používá klauzuli From (Visual Basic) nebo from (C#). Stejné
Filtrování Použije klauzuli Where/where . Stejné
Seskupení Použije klauzuli Group…By/groupby . Stejné
Výběr (projekce) Použije klauzuli Select/select . Stejné
Odložené versus okamžité spuštění Viz Úvod k dotazům LINQ (C#) Stejné
Implementace spojení Použije klauzuli Join/join . Klauzuli Join/join lze použít, ale efektivněji používá AssociationAttribute atribut. Další informace viz Dotazování napříč relacemi.
Vzdálené a místní spouštění Další informace naleznete v tématu Vzdálené a místní spuštění.
Streamování a dotazování v mezipaměti Nejde použít ve scénáři místní paměti

Viz také