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 -

  1. MongoDB GUI eszközök
  2. Mi a Dropbox?
  3. Mi az a Laravel?
  4. Mi a StringBuilder a C # -ben?

Kategória: