Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 |