Bevezetés a nyelvi integrált lekérdezésbe
A LINQ rövidítése Nyelv-integrált lekérdezés. A .NET 3.5-en és a Visual Studio 2008-ban alapították. A LINQ fő koncepciója .NET-nyelvek (például C #, VB.NET stb.) Lehetőségének biztosítása a kérdéses adatok lekérdezésére az adatforrásból. Az adatok lekérdezése különböző formátumokból és forrásokból a C # -ben és a VB.NET-ben annak egységes lekérdezési szintaxisa. Ez kiküszöböli az adatbázisok és a programozási nyelvek közötti eltéréseket, mivel integrálódott a C # / VB-vel, és különféle adatforrásokhoz is külön megkérdező felületet biztosít. Lehetővé teszi egy objektum-orientált megközelítés alkalmazását az eredménykészletnél; a kapott lekérdezések objektumokként adják meg az eredményeket.
Az SQL és a LINQ közötti különbség az, hogy a (Language Integrated Query) olyan strukturált lekérdezés-szintaxis, amelybe a VB.NET és a C # beépített különféle típusú forrásokból származó adatok kinyerésére szolgál, beleértve az MS SQL Server, az ADO.Net DataSet, a webszolgáltatást., Gyűjtemények, XML-dokumentumok és egyéb adatbázisok. Ugyanígy, az SQL egy strukturált lekérdezési nyelv, amelyet az adatok tárolására és az adatbázisból történő lekérésére használnak.
Meghatározás
A Language Integrated Query egy kompakt, jelentős és érthető szintaxist javasol az operációs adatokhoz. A Language Integrated Query egy Microsoft programozási taktika és modell, amely hatékonyan tartalmazza a formális lekérdezési képességeket a Microsoft .NET programozási nyelvekbe. Szükség van bizonyos nyelvbővítmények jelenlétére. A Nyelvi Integrált Lekérdezés tényleges értéke abból a képességéből származik, hogy képes ugyanazt a lekérdezést alkalmazni egy DataSet, SQL Database, a memóriában lévő objektumok tömbjére és különféle adatokra is.
Megértés
Háromrétegű architektúrából áll, amelyben a felső réteg rendelkezik a nyelvbővítményekkel, míg a legalsó réteg olyan adatforrásokkal rendelkezik, amelyek általában IEnumerable vagy IQueryable általános felületeket megvalósító objektumok. A LINQ architektúra az alábbiakban látható.
A C #-ban a LINQ megjelenik a névtérrendszerben. Linq. Különféle típusú módszereket határoz meg, és az osztályok támogatják a LINQ lekérdezéseket. A névtérben ez áll
- Egy felsorolható osztály olyan szabványos lekérdezési operátorokat tartalmaz, amelyek az objektumon IEnumerable funkciót hajtanak végre.
- A Queryable osztály olyan általános lekérdezési operátorokat tartalmaz, amelyek az objektumon végrehajtják az IQueryable végrehajtását.
A benne levő magszerelvények a következők:
- A rendszer használata. Linq: Osztályokkal és felülettel rendelkezik a LINQ lekérdezések fenntartásához
- A System.Collections.Generic használata: (LINQ to Objects) Hagyja, hogy a felhasználó erősen tipizált gyűjteményeket készítsen, amelyek elérhetővé teszik a típus biztonságát és teljesítményét
- A System.Data.Linq használata: (LINQ - SQL) Ajánlat a relációs adatbázisok használatának jogával.
- A System.XML.Linq használata: (LINQ – XML) Bemutatja az XML-dokumentumok LINQ használatával történő használatának jogát.
- A System.Data.Linq.Mapping használata: Osztályt rendelt egy adatbázishoz kapcsolódó entitásként.
Hogyan könnyíti meg a LINQ a munkát?
Amikor a LINQ-val dolgozni olyan könnyű, mert a nyelvi integrált lekérdezés nyelv-integrált és objektum-alapú megközelítést biztosít a lekérdezéshez. A nyelvbe integrált lekérdezés segítségével lekérdezzük az XML-t, az adatbázisokat és a gyűjteményeket is. Ellenőrzi a szintaxist a fordítás ideje alatt. A nyelvbe integrált lekérdezésnél a kódok írása gyorsabb, mivel a fejlesztési idő automatikusan csökken. Nézzünk meg néhány példát annak felismerésére, hogy miért kellene használni a nyelvbe integrált lekérdezést. Tegyük fel, hogy meg akarja találni a fiatal diákok listáját a Student objektumok tömbéből.
A C # 2.0-nál korábban egy-egy vagy egy-egy hurkot kellett használnunk, hogy a gyűjtemény átlépésekor pontos tárgyat fedezzünk fel. Például, hogy írja a kódot, hogy felsorolja az összes Diák-objektumot egy olyan Diák-tömbből, ahol a Szilárd érték 12 és 20 között van.
Mintaprogram a hurok használatához
class StudentDetails
(
public int SID ( get; set; )
public String SName ( get; set; )
public int SAge ( get; set; )
)
class Program
(
static void Main(string() args)
(
StudentDetails () sArray = (
new StudentDetails () ( SID = 1, SName = "Rio", SAge = 18 ),
new StudentDetails () ( SID = 2, SName = "Rock", SAge = 21 ),
new StudentDetails () ( SID = 3, SName = "Smith", SAge = 25 ),
new StudentDetails () ( SID = 4, SName = "Jack", SAge = 20 ),
new StudentDetails () ( SID = 5, SName = "Remo", SAge = 31 ),
new StudentDetails () ( SID = 6, SName = "Andre", SAge = 17 ),
new StudentDetails () ( SID = 7, SName = "Don", SAge = 19 ),
);
StudentDetails () students = new StudentDetails (10);
int i = 0;
foreach (StudentDetails std in sArray)
(
if (std.SAge > 12 && std.SAge < 20)
(
students(i) = std;
i++;
)
)
)
)
A hurok használata nehézkes, nem mindig kezelhető, ha többszörös eredményt talál, és szintén nem olvasható. Tehát a csapat megy a C # 3.0 következő verziójával, amelyet bevezettek, ennek a megközelítésnek az alkalmazásával meg lehet oldani az ilyen típusú kérdéseket, mivel a nyelvi integrált lekérdezés a lekérdezési elemek építőköve többféle gyűjteményhez, és az eredményeket egyetlen nyilatkozattal kapja meg. .
Lássuk az alábbi példát, amely elmagyarázza, hogy a lambda kifejezés LINQ lekérdezés segít megtalálni egy adott hallgatót a listák gyűjteményéből.
Mintaprogram
class ProgramLINQ
(
static void Main(string() args)
(
StudentDetails () sArray = (
new StudentDetails () ( SID = 1, SName = "Rio", SAge = 18 ),
new StudentDetails () ( SID = 2, SName = "Rock", SAge = 21 ),
new StudentDetails () ( SID = 3, SName = "Smith", SAge = 25 ),
new StudentDetails () ( SID = 4, SName = "Jack", SAge = 20 ),
new StudentDetails () ( SID = 5, SName = "Remo", SAge = 31 ),
new StudentDetails () ( SID = 6, SName = "Andre", SAge = 17 ),
new StudentDetails () ( SID = 7, SName = "Don", SAge = 19 ),
);
// to find young students in the list
StudentDetails () tStudents = sArray.Where(s => s. SAge > 12 && s. SAge < 20).ToArray();
// to find first student whose name is Smith
StudentDetails f_Sname = sArray.Where(s => s. SName == "Smith ").FirstOrDefault();
// to find student whose StudentID is 5
StudentDetails f_SID = sArray.Where(s => s. SID == 5).FirstOrDefault();
)
)
Így a Nyelvi Integrált Lekérdezés a kódot tömörítve és érthetőbbé teszi, és több adatforrás lekérdezésére is felhasználható.
Mi a LINQ használata?
- Jól ismert nyelv
- Kevesebb kódolás
- Olvasható kód
- a számtalan adatforrás lekérdezésének azonos technikája
- A lekérdezések időbeli védelme
- Intelli-Sense karbantartás
- Az adatok meghatározása
Együttműködés a LINQ-val
Nyelvi integrált lekérdezés engedélyezett adatforrások. az alábbiakban röviden említjük a LINQ típusait.
- LINQ az objektumokhoz
- LINQ - XML (XLINQ)
- LINQ az adatkészlethez
- LINQ - SQL (DLINQ)
- Linq az entitásokhoz
1. LINQ az objektumhoz
A LINQ to Objects bemutatja a memórián belüli adatgyűjteményekhez és objektumokhoz való hozzáférést lehetővé tevő, minden számot támogató LINQ lekérdezés kezelését. a Linq objektumokhoz való visszatérési változója I számú lesz.
2. LINQ – XML (XLinq)
A LINQ to XML elérhető a System.Xml.Linq névtérben. Az XML adatforrások lekérdezéséhez a LINQ-t használjuk az XML-re. A Linq to XML ezen felül a .NET-keretrendszer olyan funkcióit is tökéletesen kihasználja, mint a fordítási idő ellenőrzése, hibakeresés, erős gépelés és így tovább. amikor az XML dokumentumok memóriába töltése egyszerű és könnyebb a dokumentumok módosítása és lekérdezése során.
3. LINQ az adatkészlethez
LINQ az DataSet számára, amely fenntartja a lekérdezéseket az ADO.NET adattáblázatok és adatkészletek segítségével. Ha az adatok több adatforrásból összevonódnak, akkor a LINQ-t az adatkészlethez fogjuk használni a lekérdezéshez.
4. LINQ az SQL-hez
A LINQ-t az SQL-nek DLINQ-nek is hívják, és a nyelvi integrált lekérdezés része; LINQ kifejezések használatával lehetővé teszi az adatok lekérdezését az SQL Server adatbázisban.
5. LINQ a szervezetek számára
A LINQ-ban Entitások számára a C # használatával: Az entitások lekérdezésének egyszerű és egyszerű módja. A lekérdezés egy kifejezés, amelyet arra használnak, hogy adatokat szerezzenek az adattárból. a DBContext használatával az EF 6-ban vagy a DBContext használatával az EF Core entitás keretben az adatbázis lekérdezése megtörtént.
Előnyök
A nyelvi integrált lekérdezés számos előnnyel jár; Néhány előnye az alábbiakban található.
- Ez a szintaxis kiemelése miatt segíti a tervezés során felmerülő hibák feltárását.
- Segít a lekérdezés pontosabb megírásában.
- A Nyelvi Integrált Lekérdezés esetén a fejlesztési idő csökken, mivel a Nyelvbe integrált lekérdezésnél a kód írása sokkal gyorsabb és könnyebb.
- Integrálva a C # nyelvvel, könnyebbé teszi a hibakeresést.
- Megvan a hierarchikus jellemzői, mivel a két tábla közötti kapcsolat megfigyelése könnyebb, és kevesebb időbe telik a több illesztéses lekérdezések létrehozása.
- A nyelvi integrált lekérdezés támogatja az egyszerűbb átalakítást az egyik adattípusról a másikra történő átalakításhoz, például az SQL-ből az XML-adatokba történő átalakításhoz.
- A LINQ használatával a fejlesztők könnyen karbantarthatók és érthetők, mivel a kód jobban olvasható.
- A LINQ-ban egységes szintaxis lesz több adatforrás lekérdezésére.
- A fordítás ideje alatt a LINQ biztosítja az objektumok típusvizsgálatát.
- Támogatja az adatok formázását, különféle formákban állíthatjuk elő az adatokat.
Miért kellene használni a LINQ-t?
Lássuk, miért fejlesztették ki a nyelvbe integrált lekérdezést, vagy miért használjuk a LINQ-t. Több szempont is meghatározhatja, hogy miért használjuk a nyelvintegrált lekérdezést.
- Ha összehasonlítjuk az SQL-lel, a LINQ könnyen kezelhető, magas szintű nyelv és jól orientált.
- A LINQ felépítésének fő alapelve, hogy a C # 3.0-ban korábban megtaláltuk egy adott objektumot, amelyet mindegyikhez használtunk, hurok delegálóknak, mindezen felhasználásával, nagy hátrányt jelentett, mivel az objektum megismeréséhez több sort kell kódolnunk. kódolás, amely a programokat kevésbé olvashatóvá és időigényesebbé teszi. Ezen problémák kiküszöbölése érdekében bevezették a LINQ-t, mivel a nyelvi integrált lekérdezés nagyon kevés sorban hajtja végre a programokat / kódolást, és a kód olvashatóbbá válik, és a kód egységesítése után ugyanazt a kódot használhatjuk több más programban is.
- A futási idő alatt segít megtalálni a hibákat, így könnyen eltávolíthatjuk vagy kijavíthatjuk a hibákat, és fordítási idő ellenőrzést is biztosít.
- Hatékony módon a LINQ új irányt ad nekünk az ilyen kérdések megoldására; és nyelvi integrált lekérdezéseket is használhatunk gyűjtemények és C # tömbök esetén.
- Fenntartja a lekérdezés kifejezést, kiterjesztési módszereket, implicit típusú változókat, lambda kifejezéseket, objektumokat és gyűjteményeket.
- A Nyelvekre integrált lekérdezésben nem kell különféle nyelveket megtanulni, mivel egy külön lekérdezés bármilyen adatbázishoz működhet. Ezenkívül bármilyen adatforrást támogat, például objektumokat, XML-t, entitásokat, SQL-t és így tovább.
Integrált nyelvi lekérdezés
Úgy hozták létre, hogy betöltse a szakadékot a hagyományos .NET között, amely objektum-orientált megközelítést és erős gépelési megközelítést mutat. A Nyelvi Integrált Lekérdezés bevezetett egy egyszerű tanulási modellt az adatok módosítására és lekérdezésére, valamint támogatja az olyan adatforrásokat, amelyek tartalmazzák az XML-t, a memóriában lévő adatszerkezeteket és a relációs adatokat. Nyelv-integrált lekérdezés integrálva egy objektum-orientált és relációs megközelítéssel. Ez egy erősen tipizált kifejezés. Az erősen gépelt kifejezések győződjön meg arról, hogy a megfelelő típusú érték a fordítás idején és a futásidejű idő alatt megakadályozza a hibák megtalálását a tyúkóddal.
Miért van szükségünk LINQ-ra?
A LINQ-nél korábban az SQL, C # és számos API megtanulásához szükséges, amelyek összekapcsolódnak egy teljes alkalmazás fejlesztéséhez. Annak érdekében, hogy ezek a programozási nyelv és adatforrások némi problémával szembesüljenek, a kódolás szintén megnehezíti. Lássuk néhány példát, amelyet a programozók többféle módszerrel használtak, amikor az adatok lekérdezése előtt a nyelvi integrált lekérdezés megérkezett.
Mintaprogram
SqlConnection conn= new SqlConnection(connString);
SqlConnection.Open();
System.Data.SqlClient.SqlCommand cmd=ne SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "Select * from Employee";
return cmd.ExecuteReader (CommandBehavior.CloseConnection) ;
By using LINQ the above same query can be return in simple easy and readable form whereas the consuming time also very less.
Northwind db_ = new Northwind(@"C:\Data\Northwind.mdf");
var query_result = from e in db.Employee select e;
Hogyan segít ez a technológia a karriernövekedésben?
Ez egy olyan keresőmotor, amely elősegíti az adatfolyamatok korszerűsítését. Ez jól orientált módon segíti a karrier növekedését. Támogatja az egész csapatot, így könnyű együttműködni és csökkenti az átdolgozást, valamint megtartja a projektet az ütemezett időben és a becsült költségvetés keretein belül.
Következtetés
Jól olvasod, hogyan változik a LINQ, és hogyan javul az ADO.NET. Ezen felül segít az időmegtakarításban. Végül is tudta, hogy a nyelvi integrált lekérdezések hogyan használhatók többféle adatforráshoz. Ebben a cikkben megismertük a nyelvi integrált lekérdezés munkafolyamatait és használatát. Remélem, ez a cikk segített volna Önnek.
Ajánlott cikkek
Ez az útmutató a Mi az a LINQ? Itt a definíciót, az előnyöket és a felhasználást, valamint a Mintaprogramot és a Hatályt tárgyaljuk. A további javasolt cikkeken keresztül további információkat is megtudhat -
- MongoDB GUI eszközök
- Mi a Dropbox?
- Mi az a Laravel?
- Mi a StringBuilder a C # -ben?