A Language Integrated Query (LINQ) egy Microsoft -projekt , amely SQL - szerű lekérdezési nyelvi szintaxist ad a .NET-keretrendszer programozási nyelveihez . Korábban C# -ban és Visual Basic .NET -ben volt megvalósítva . A LINQ által bemutatott koncepciók közül sokat eredetileg a Microsoft Cω kutatási projektben teszteltek .
A LINQ a Visual Studio 2008-mal együtt jelent meg 2007. november végén. A LINQ-lekérdezések gyors létrehozásához és hibakereséséhez létezik egy LINQPad nevű speciális segédprogram .
Néhány új nyelvi funkció segítségével a LINQ lehetővé teszi az SQL-szerű szintaxis használatát közvetlenül egy program kódjában, például C#-ban:
A memórián belüli objektumok, relációs adatbázisok és XML -adatok gyűjteményeihez natív lekérdezőmotort támogató LINQ olyan bővíthető architektúrával rendelkezik, amely lehetővé teszi a külső fejlesztők számára, hogy a LINQ motoron keresztül hozzáférjenek adattáraikhoz. Ehhez szabványos lekérdezési operátorokat kell megvalósítania kiterjesztési módszerekkel, vagy meg kell valósítania az IQueryable felületet , amely lehetővé teszi a kifejezésfa futás közbeni elemzését, lefordítva azt a lekérdezési nyelvre. Van példa a szabványos lekérdezési operátorok egyedi megvalósítására a közösségben. [egy]
Például a LINQ for SQL (korábban DLinq), amely a LINQ-kifejezéseket SQL-lekérdezésekké fordítja le egy adatbázisban, a fordító azon képességét használja, hogy a programkontextus alapján kifejezésfát hozzon létre, ahelyett, hogy függvény delegáltakat hozna létre. Adott egy kifejezésfa, amely leír egy lekérdezést, egy speciális adatbázis-szolgáltató elemezni tudja, és lefordíthatja lekérdezéssé az adatbázisnak megfelelő nyelven, például Microsoft SQL Server, Jet (amely a Microsoft Accessben használatos) vagy bármely más nyelven. Egyes rajongók már létrehoztak LINQ proof-of-concept könyvtárakat WMI [2] , RSS , LDAP [3] , ADO.NET adatgyűjtemények , Amazon Web Services [4] és SharePoint [5] lekérdezésére ezzel a taktikával .
A Microsoft jelenlegi előnézete a LINQ for XML (korábbi nevén XLinq) megvalósítását is tartalmazza, amely sokkal egyszerűbbé teszi az XML-dokumentumok hasonló megközelítésekkel történő összeállítását és adatkinyerését. Ezenkívül a Microsoft dolgozik az ADO.NET vNext-en, amely LINQ to Entities néven is ismert.
2008 végén a LINQ to SQL és az ADO.NET Entity Framework (beleértve a LINQ to Entities) fejlesztésének felelősségét az ADO.NET fejlesztői csapatra (az úgynevezett ADO.NET csapatra) helyezték át. míg korábban a LINQ to SQL-t a C# nyelv fordítójának fejlesztésével foglalkozó csapat fejlesztette [6] . Így nyilvánvalóvá vált, hogy mindkét megoldás ugyanazon problémák megoldására irányul, ezért versenyezni fog egymással. Kicsit később Tim Mallelew tisztázta, hogy a Microsoft továbbra is fejleszti a LINQ to SQL-t a felhasználói visszajelzések alapján. A .NET 4.0-tól kezdve azonban az ajánlott megoldás a LINQ to Entities. Ezenkívül a felhasználóktól származó adatok alapján a LINQ to SQL leggyakrabban használt szolgáltatásai hozzáadódnak a LINQ to Entitieshez [7] . Ennek eredményeként a megoldások fokozatos összevonása következik be.
A szakértők általában támogatták ezt a döntést. Így például Marco Russo, bár fenntartással élt azzal kapcsolatban, hogy a LINQ-ra való áttérés az Entities-re nem lehet korábban, mint a LINQ SQL-re való teljes helyettesítése, ennek ellenére kijelentette, hogy jó ötlet két, részben átfedő keretrendszer kombinálása. de ugyanakkor azoknak a felhasználóknak sem kell szenvedniük, akik hozzászoktak a megoldások "eldobott" részeinek használatához [6] .
Ez nem más, mint SQL [8] szintaxisnak álcázott funkcionális programozás .
A LINQ könyvtár tartalmazza az SQLMetal eszközt, amely lehetővé teszi az osztályok automatikus generálását közvetlenül a .NET-keretrendszer által támogatott adatbázisokból, így nagyon gyors és egyszerű az adatbázis-entitások integrálása a kódba. Alternatív megoldás a Visual Studio relációs objektumtervezője, de csak a Microsoft SQL Serverrel használható.
.HÁLÓ | |
---|---|
Megvalósítások | |
Építészet | |
Infrastruktúra |
|
Microsoft nyelvek | |
Más nyelvek | |
Windows alapok | |
Alkatrészek | |
Összehasonlítások |
|
Jövő technológiái | |
Információs források |