Úvod do jazyka integrovaného dotazu

LINQ je zkrácena na Language Integrated Query. Je založena v .NET 3.5 a Visual Studio 2008, hlavním konceptem LINQ je poskytovat zařízení .NET jazykům (jako C #, VB.NET atd.) K vytváření dotazů pro zpětné získání dat ze zdroje dat. Pro načtení dat z různých formátů a zdrojů v C # a VB.NET je jeho jednotná syntaxe dotazu. Eliminuje rozdíly mezi databázemi a programovacími jazyky, protože je integrován s C # / VB, a také za předpokladu, že se jedná o odlišné rozhraní dotazování pro různé typy zdrojů dat. Umožňuje použít objektově orientovaný přístup k sadě výsledků; výsledné dotazy vrátí výsledky jako objekty.

Rozdíl mezi SQL a LINQ spočívá v tom, že (Language Integrated Query) je strukturovaná syntaxe dotazu, která integrovala VB.NET a C # pro načítání dat z různých typů zdrojů dat, které zahrnují MS SQL Server, ADO.Net DataSet, webovou službu, Sbírky, dokumenty XML a další databáze. Stejným způsobem je SQL strukturovaný dotazovací jazyk, který se používá k ukládání a načítání dat z databáze.

Definice

Jazyk integrovaný dotaz navrhuje kompaktní významnou a srozumitelnou syntaxi pro provozní data. Language Integrated Query je programovací taktika a model společnosti Microsoft, který efektivně zahrnuje formální schopnosti dotazování do programovacích jazyků Microsoft .NET. Vyžaduje přítomnost konkrétních jazykových rozšíření. Skutečná hodnota jazyka Integrated Query vychází z jeho schopnosti aplikovat stejný dotaz na DataSet, SQL Database, řadu objektů v paměti a také na různé typy dat.

Porozumění

Skládá se z třívrstvé architektury, ve které má horní vrstva jazykové rozšíření a nejspodnější vrstva obsahuje zdroje dat, které jsou obecně objekty implementujícími generovatelná rozhraní IEnumerable nebo IQueryable. Architektura LINQ je zobrazena níže.

V C #, LINQ představuje v oboru názvů. Linq. Definuje různé typy metod a tříd podporujících dotazy LINQ. V oboru jmen se skládá z

  • Vyčíslitelná třída obsahuje standardní operátory dotazů, které fungují na objektu vykonávajícím IEnumerable.
  • Třída Queryable obsahuje standardní operátory dotazů, které fungují na objektu, který provádí IQueryable.

Jádrové sestavy v něm jsou:

  • Používání systému. Linq: Dotujte se třídami a rozhraním pro udržování dotazů LINQ
  • Použití System.Collections.Generic: (LINQ to Objects) Umožněte uživateli vytvářet silně typizované kolekce, které zpřístupňují bezpečnost a výkon typu
  • Použití System.Data.Linq: (LINQ to SQL) Nabídka s funkcí práva používat relační databáze
  • Použití System.XML.Linq: (LINQ do XML) Představuje funkce pro právo používat dokumenty XML pomocí LINQ.
  • Pomocí System.Data.Linq.Mapping: Přiřazena třída jako entita spojená s databází.

Jak LINQ usnadňuje práci?

Při práci s LINQ je to tak snadné, protože jazykově integrovaný dotaz poskytuje jazykově integrovaný a objektově založený přístup k dotazu. Pomocí jazyka integrovaného dotazu můžeme dotazovat XML, databázi a také sbírky. Během kompilace zkontroluje syntaxi. V jazyce Integrated Integrated Query je psaní rychlejší díky tomu, že se také automaticky zkracuje doba vývoje. Abychom si uvědomili, proč bychom měli používat jazykově integrovaný dotaz, podívejme se na několik příkladů. Předpokládejme, že chcete najít seznam mladých studentů z řady Studentských objektů.
Dříve než C # 2.0 jsme museli použít smyčku „pro každou“ nebo „pro“, abychom prošli kolekcí a objevili přesný objekt. Například napsat kód pro výpis všech objektů Student z pole Studentů, kde je SAge mezi 12 a 20.

Ukázkový program pro použití pro smyčku

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++;
)
)
)
)

Použití pro smyčku je obtížné, ne vždy zvládnutelné při hledání více čísel výsledků a také není čitelné. Tým tedy přichází s další verzí v C # 3.0, která byla představena, pomocí tohoto přístupu lze vyřešit takové typy problémů, protože jazykově integrovaný dotaz je stavebním kamenem prvků dotazu pro několik druhů kolekce a také získává výsledky jediným příkazem .
Podívejme se na níže uvedený příklad vysvětluje, že lambda výraz LINQ dotaz pomáhá najít konkrétního studenta ze sbírky seznamů.

Ukázkový program

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();
)
)

Díky integrovanému dotazu jazyka je kód navíc komprimovaný a srozumitelný a lze jej také použít k dotazování na několik zdrojů dat.

Jaké je použití LINQ

  • Známý jazyk
  • Méně kódování
  • Čitelný kód
  • identická technika dotazování četných zdrojů dat
  • Ochrana dotazů zkompilovat čas
  • Údržba Intelli-Sense
  • Stanovení dat

Práce s LINQ

Jazykově integrované zdroje dat s dotazem. typy LINQ jsou stručně uvedeny níže.

  • LINQ k objektům
  • LINQ do XML (XLINQ)
  • LINQ do sady dat
  • LINQ na SQL (DLINQ)
  • Linq k entitám

1. LINQ k objektu

LINQ to Objects představuje zpracování všech dotazů LINQ podporujících IEnumerable pro přístup k datovým souborům a objektům v paměti. Návratová proměnná v Linq na objekty bude typu IEnumerable.

2. LINQ do XML (XLinq)

LINQ to XML je k dispozici v oboru názvů nazvaném System.Xml.Linq. k dotazování na zdroje dat XML, využíváme LINQ k XML. Linq to XML navíc nejlépe využívá funkcionality rozhraní .NET, jako je kontrola kompilace, ladění a silné psaní atd. při načítání dokumentů XML do paměti je v úpravách a dotazech dokumentů jednodušší a snazší.

3. LINQ k datové sadě

LINQ to DataSet, který udržuje dotazy pomocí datových tabulek a datových sad ADO.NET. když jsou data konsolidována z několika zdrojů dat, použijeme pro dotazování LINQ k datové sadě.

4. LINQ na SQL

LINQ to SQL se také nazývá DLINQ a je součástí dotazu integrovaného do jazyka; pomocí výrazů LINQ, umožňuje dotazování dat v databázi serveru SQL.

5. LINQ pro entity

V LINQ k entitám pomocí C # Je to snadný a jednoduchý způsob dotazování entit. dotaz je výraz, který se používá k získání dat z úložiště dat. pomocí tohoto DBContext v EF 6 nebo DBContext v EF Core entity frameworku dotazování databáze je hotovo.

Výhody

Jazyk integrovaný dotaz nabízí množství výhod; Některé z výhod jsou uvedeny níže.

  • Pomáhá při zjišťování chyb během návrhu kvůli zvýraznění syntaxe.
  • Pomáhá při přesnějším psaní dotazu.
  • V jazyce Integrated Integrated Query se doba vývoje zkrátí, protože psaní kódu je v jazyce Integrated Query mnohem rychlejší a snazší.
  • Je integrován s jazykem C #, protože usnadňuje ladění.
  • Má své hierarchické vlastnosti, protože prohlížení vztahů mezi dvěma tabulkami je snazší a vytváření dotazů pomocí vícenásobných spojení vyžaduje méně času.
  • Jazyk integrovaný dotaz podporuje snadnější transformaci pro převod z jednoho datového typu na jiný datový typ, jako je transformace z SQL na data XML.
  • Pomocí LINQ vývojáři mohou snadno udržovat a srozumitelné, protože jeho kód lépe čitelný.
  • V LINQ bude jednotná syntaxe pro dotazování několika zdrojů dat.
  • Během kompilace poskytuje LINQ kontrolu typu objektů.
  • Podporuje tvarování dat, můžeme načíst data v různých tvarech.

Proč bychom měli používat LINQ?

Podívejme se, proč se vyvinul Language Integrated Query nebo proč používáme LINQ, je několik bodů, které definují, proč používáme Language Integrated Query.

  • Při porovnání s SQL je LINQ snadno ovladatelný, jazyk na vysoké úrovni a dobře orientovaný.
  • Hlavním principem, který stojí za budováním LINQ, je dříve v C # 3.0 pro nalezení konkrétního objektu, který jsme používali pro každého, pro smyčku, delegáti, kteří používali všechny, to mělo hlavní nevýhodu, protože pro nalezení objektu musíme kódovat několik řádků kódování, které vytváří program méně čitelný a také časově náročnější. K překonání těchto problémů byl zaveden LINQ, protože jazykově integrovaný dotaz provede programy / kódování na velmi malém počtu řádků a také kód je čitelnější a jakmile je kód standardizován, můžeme stejný kód použít v několika dalších programech.
  • Během běhu pomáhá najít chyby, abychom je mohli snadno odstranit nebo opravit a také zajistit kontrolu kompilace.
  • LINQ nám efektivně dává nový směr k řešení těchto problémů; a také můžeme použít jazykově integrovaný dotaz se sbírkami a C # maticí.
  • Zachovává výraz dotazu, metody rozšíření, implicitní typy proměnných, lambda výrazy, objekty a kolekce.
  • V jazyce Integrated Integrated Query není třeba se učit různé typy jazyků, protože samostatný dotaz může pracovat s jakoukoli databází. A také podporuje jakýkoli druh zdroje dat, jako jsou objekty, XML, entity, SQL atd.

Jazykový integrovaný rozsah dotazu

Je vytvořen pro načtení mezery mezi konvenční .NET, která představuje objektově orientovaný přístup a silný typingový přístup. Language Integrated Query zavedl snadno se učící model pro úpravu a dotazování dat a také podporuje zdroje dat, které zahrnují XML, datové struktury v paměti a relační data. Jazyk integrovaný dotaz integrovaný s objektově orientovaným a relačním přístupem. Jedná se o výrazný výraz. Výrazně zadané výrazy zajišťují, aby hodnota správného typu v době kompilace a během běhu zabraňovala nalezení chyb při kódování slepic.

Proč potřebujeme LINQ?

Dříve k LINQ, je nutné se naučit SQL, C # a několik API, které se spojují k vývoji celé aplikace. Aby tyto programovací jazykové zdroje a zdroje dat čelily některým problémům a kódování je také obtížné. Podívejme se na příklad několika technik, které programátoři použili při dotazování dat před příchodem jazyka integrovaného dotazu.

Ukázkový program

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;

Jak vám tato technologie pomůže při růstu kariéry?

Je to vyhledávač, který pomáhá při zefektivnění pracovních toků dat. Pomůže to v kariérním růstu dobře orientovaným způsobem. Podporuje celý tým, se kterým se snadno pracuje, a redukuje přepracování a také udržuje projekt s plánovaným časem a v rámci odhadovaného rozpočtu.

Závěr

Dobře jste si přečetli, jak se LINQ liší od ADO.NET a jak je lepší na ADO.NET. Kromě toho, To pomáhá v úsporu času. Nakonec jste věděli, jak lze jazykově integrované dotazy použít pro několik typů zdrojů dat. V tomto článku jsme se dozvěděli o pracovním procesu jazyka integrovaného dotazu a jak jej používat. Doufám, že vám tento článek pomohl.

Doporučené články

Toto je průvodce Co je LINQ ?. Zde diskutujeme definici, výhody a použití spolu s ukázkovým programem a rozsahem. Další informace naleznete také v dalších navrhovaných článcích -

  1. Nástroje GUI pro MongoDB
  2. Co je Dropbox?
  3. Co je Laravel?
  4. Co je StringBuilder v C #

Kategorie: