LINQ–SQL-lekérdezések
A LINQ-t az SQL-lekérdezésekhez ugyanazzal a szintaxissal definiálhatja, mint a LINQ-ban. Az egyetlen különbség az, hogy a lekérdezésekben hivatkozott objektumok egy adatbázis elemeire vannak leképezve. További információ: Bevezetés a LINQ-lekérdezések (C#) használatába.
A LINQ az SQL-nek lefordítja az ön által írt lekérdezéseket egyenértékű SQL-lekérdezésekre, és elküldi őket a kiszolgálónak feldolgozás céljából. Pontosabban az alkalmazás a LINQ-t használja az SQL API-hoz a lekérdezés végrehajtásának igényléséhez. A LINQ és az SQL-szolgáltató ezt követően SQL-szöveggé alakítja át a lekérdezést, és a végrehajtást az ADO-szolgáltatónak delegálja. Az ADO-szolgáltató lekérdezési eredményeket DataReader
ad vissza . A LINQ és az SQL-szolgáltató az ADO-eredményeket felhasználói objektumok gyűjteményére IQueryable fordítja le.
Feljegyzés
A .NET-keretrendszer beépített típusok legtöbb metódusa és operátora közvetlen SQL-fordítással rendelkezik. Azok, amelyeket a LINQ nem tud lefordítani, futásidejű kivételeket generálnak. További információkért lásd az SQL-CLR típusleképezését.
Az alábbi táblázat a LINQ és a LINQ és az SQL-lekérdezéselemek közötti hasonlóságokat és különbségeket mutatja be.
Elem | LINQ-lekérdezés | LINQ–SQL Query |
---|---|---|
A lekérdezést tartalmazó helyi változó visszatérési típusa (sorozatokat visszaváltó lekérdezések esetén) | Általános IEnumerable |
Általános IQueryable |
Az adatforrás megadása | From A (Visual Basic) vagy from a (C#) záradékot használja |
Ugyanaz |
Szűrés | Where /where A záradékot használja |
Ugyanaz |
Csoportosítás | Group…By /groupby A záradékot használja |
Ugyanaz |
Kiválasztás (kivetítés) | Select /select A záradékot használja |
Ugyanaz |
Halasztott és azonnali végrehajtás | A LINQ-lekérdezések bemutatása (C#) | Ugyanaz |
Csatlakozások implementálása | Join /join A záradékot használja |
Használhatja a Join /join záradékot, de hatékonyabban használhatja az AssociationAttribute attribútumot. További információt a Kapcsolatok közötti lekérdezés című témakörben talál. |
Távoli és helyi végrehajtás | További információ: Távoli és helyi végrehajtás. | |
Streamelés és gyorsítótárazott lekérdezés | Helyi memóriaforgatókönyvben nem alkalmazható |