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 nemohou přeložit vygenerované výjimky za běhu. Další informace naleznete v tématu SQL-CLR Type Mapping.

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) Obecné IEnumerable Obecné 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 (promítání) Použije klauzuli Select/select . Stejné
Odložené a 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 najdete v tématu Dotazování mezi 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é