Bevezetés a LINQ lekérdezések (c #)
A kérés egy kifejezés, amely beolvassa az adatokat a forrás. Lekérdezések általában kifejezve egy speciális lekérdező nyelvet. Idővel ők fejlesztették a különböző nyelvek különböző típusú adatforrások, mint például az SQL relációs adatbázisok és XQuery az XML. Így a fejlesztők kénytelenek megtanulni egy új lekérdező nyelv minden típusú adatforrás, illetve adat formátum, hogy szükség van, hogy támogassa. LINQ egyszerűsíti a helyzetet azáltal, hogy következetes modellt adatok feldolgozására a különböző adatforrások és formátumok. A LINQ lekérdezés munka mindig végzik a tárgyakat. Mert lekérdezések és adattranszformációk XML-dokumentumok, az SQL adatbázisok, az ADO.NET Datasets, .NET gyűjtemények és más formában, melyek LINQ szolgáltató áll rendelkezésre, használja ugyanazt az alapvető kódolási szokások.
Az alábbi ábrán a teljes működés kérelmet. A LINQ lekérdezés végrehajtása eltér a lekérdezés; Más szóval, a teremtés, a lekérdezés változó önmagában nem kapcsolódik az adatgyűjtést.

Az előző példában, az adatforrás egy tömb, ezért hallgatólagosan támogatja a generikus IEnumerable interfész
Az igényelt típus szolgáló LINQ adatforrás nem igényel változtatásokat, vagy speciális kezelést. Ha a forrás adat még nincs memória formájában a kívánt méretet a LINQ szolgáltató bemutatni, mint olyat. Például LINQ to XML betölti az XML-kért dokumentum típusa XElement.
Segítségével LINQ to SQL, először hozzon létre egy objektum-relációs leképezést fejlesztési mód a kézi vagy az objektum relációs tervező. Írja kéréseket tárgyak és futásidejű LINQ to SQL fog kölcsönhatásba az adatbázis. Ügyfelek A következő példa egy konkrét táblát az adatbázisban, és a lekérdezés eredmény típusa IQueryable
További információ arról, hogyan lehet létrehozni bizonyos típusú adatforrások. Dokumentáció a különböző LINQ szolgáltatók. Az alapvető szabály nagyon egyszerű: a LINQ adatforrás - bármilyen tárgy, amely támogatja univerzális interfész IEnumerable
Típusok, mint a ArrayList. nonuniversal támogatja a IEnumerable felületet. Azt is lehet használni, mint a LINQ adatforrások. További információért lásd. Hogyan. Lekérdezés futtatásának egy ArrayList a LINQ.
A kérelem feltünteti a fajta információt szeretne kivonat a forrás vagy adatforrásokat. Ha szükséges, a kérelmet is meghatározza a rendezési módszer, és megalakult csoportok az ilyen információk, mielőtt visszatért. A kérés egy változóban tároljuk lekérdezés és a lekérdezés kifejezést alaphelyzetbe kerül. Annak érdekében, hogy könnyebb írni lekérdezéseket C #, új lekérdezés szintaxis.
A kérelmet az első példa visszaadja az összes páros szám egy tömb az egész számok. lekérdezés kifejezés tartalmaz három javaslatot: ettől. ahol majd válassza ki. (Ha tudja SQL, akkor vegye figyelembe, hogy az eljárás biztosítja a fordított sorrendben SQL.) FROM záradék meghatározza az adatforrást, ahol kikötés kikötés alkalmaz szűrőt, és a választott pont típusát adja meg a visszaküldött terméket. Ezek és más javaslatokat lekérdezések részletesen a LINQ lekérdezés kifejezések (útmutató Programozás C #). Fontos, hogy a LINQ lekérdezés változó önmagában semmit sem tesz, és nem ad vissza adatokat. Ez egyszerűen tárolja a szükséges információkat, hogy az eredményeket a következő alkalommal a lekérdezés futtatásakor. További információ a épület lekérdezések, lásd. Megértésében Standard Query operátorok.
Lekérdezések is kifejezhető módszer segítségével szintaxis. További információért lásd. A részben összehasonlítjuk LINQ lekérdezés szintaxisa és módszer szintaxis (C #).
halasztott végrehajtás
Mint korábban említettük, a lekérdezés változó önmagában csak tárolja a lekérdezés parancsokat. A tényleges végrehajtását a kérelem halasztani iterálása a lekérdezés változó egy foreach utasítást. Ezt a fogalmat nevezik halasztott végrehajtását. ez mutatja a következő példa.
A foreach utasításnak az a hely is, ahol a lekérdezés eredményét letöltésére. Például, az előző lekérdezés NUM változó tartalmazza minden egyes iterációval (viszont) értékét a visszaadott sorrendben.
Mivel a lekérdezés változó önmagában nem tartalmazza a lekérdezés eredményét, azt el lehet végezni, ahányszor szükséges. Például, ha az adatbázis folyamatosan frissül külön alkalmazás. Az alkalmazás hozzon létre egy lekérdezést, amely beolvassa a legfrissebb adatokat, és lehet végre újra egy bizonyos időközönként letölteni különböző eredményeket minden egyes alkalommal.
Erőltetett azonnali végrehajtás
Lekérdezések elvégzésére aggregációs feladatokat egy sor forrás elemek először iterációkhoz ezeket az elemeket. Ilyen lekérdezések Count. Max. Átlagos, és az első. Ezek nélkül végrehajtott explicit operátora foreach. mivel a kérés önmagában kell használni foreach visszatérni eredményeként. Felhívjuk figyelmét, hogy ez a fajta lekérdezés egyetlen érték, nem a gyűjtemény IEnumerable. Az alábbi lekérdezés száma páros számok a forrás tömbben.