Inleiding tot taalgeïntegreerde query

LINQ wordt afgekort als Language Integrated Query. Het is opgericht in .NET 3.5 en Visual Studio 2008, het hoofdconcept van LINQ is om de mogelijkheid te bieden aan .NET-talen (zoals C #, VB.NET, enz.) Om query's te bouwen om gegevens van de gegevensbron terug te krijgen. Om de gegevens op te halen uit verschillende formaten en bronnen in C # en VB.NET zijn uniforme querysyntaxis. Het elimineert de variantie tussen databases en programmeertalen omdat het is geïntegreerd met C # / VB en ook een aparte queryinterface voor verschillende typen gegevensbronnen heeft. Het maakt het mogelijk om een ​​objectgeoriënteerde benadering te gebruiken voor de resultaten; de resulterende query's retourneren resultaten als objecten.

Het verschil tussen SQL en LINQ is dat waarbij (Language Integrated Query) gestructureerde query-syntaxis is die VB.NET en C # heeft ingebouwd om de gegevens uit verschillende soorten gegevensbronnen op te halen, waaronder MS SQL Server, ADO.Net DataSet, webservice, Collecties, XML-documenten en andere databases. Op dezelfde manier is SQL een gestructureerde querytaal die wordt gebruikt om de gegevens uit een database op te slaan en op te halen.

Definitie

Language Integrated Query biedt een compacte, significante en begrijpelijke syntaxis voor bedrijfsgegevens. Language Integrated Query is een programmeertactiek en -model van Microsoft dat formele vraagmogelijkheden in Microsoft .NET-programmeertalen bevat. Er is behoefte aan de aanwezigheid van bepaalde taalextensies. De werkelijke waarde van Language Integrated Query komt voort uit de mogelijkheid om dezelfde query toe te passen op een DataSet, SQL Database, een reeks objecten in het geheugen en ook verschillende soorten gegevens.

Begrip

Het bestaat uit een drielaagse architectuur waarin de bovenste laag de taalextensies heeft en de onderste laag gegevensbronnen die in het algemeen objecten zijn die IEnumerable of IQueryable generieke interfaces implementeren. LINQ-architectuur wordt hieronder getoond.

In C # presenteert LINQ in de naamruimte Systeem. Linq. Het definieert verschillende soorten methoden en klassen ondersteunen de LINQ-query's. In de naamruimte bestaat het uit

  • Een opsombare klasse bevat standaard query-operatoren die op object uitvoeren IEnumerable.
  • Queryable-klasse bevat standaardqueryoperators die werken op objectuitvoer IQueryable.

De kernassemblages daarin zijn:

  • Systeem gebruiken. Linq: begiftig met klassen en interface om LINQ-zoekopdrachten te onderhouden
  • System.Collections.Generic gebruiken: (LINQ naar objecten) Laat de gebruiker sterk getypeerde collecties bouwen die de veiligheid en prestaties van het type beschikbaar maken
  • System.Data.Linq gebruiken: (LINQ tot SQL) Aanbieding met de functionaliteit om relationele databases te gebruiken
  • System.XML.Linq gebruiken: (LINQ naar XML) Presenteert de functionaliteit voor het recht om XML-documenten te gebruiken met behulp van LINQ.
  • System.Data.Linq.Mapping gebruiken: een klasse toegewezen als een entiteit verbonden met een database.

Hoe maakt LINQ werken zo gemakkelijk?

Wanneer u met LINQ werkt, is dit zo eenvoudig omdat de taalgeïntegreerde query een taalgeïntegreerde en objectgebaseerde benadering van query's biedt. Door gebruik te maken van in taal geïntegreerde query kunnen we query's uitvoeren op XML, database en ook collecties. Het controleert de syntaxis tijdens het compileren. In Language Integrated is het schrijven van query's sneller, omdat de ontwikkelingstijd ook automatisch wordt verkort. Laten we enkele voorbeelden bekijken om te beseffen waarom we een geïntegreerde taalquery zouden moeten gebruiken. Stel dat u de lijst met jonge studenten uit een reeks Student-objecten wilt vinden.
Eerder dan C # 2.0 moesten we een 'voor elke' of een 'voor' lus gebruiken om de collectie te doorlopen om een ​​exact object te ontdekken. Als u bijvoorbeeld de code wilt schrijven om alle Student-objecten weer te geven uit een reeks studenten met een SAge tussen 12 en 20.

Voorbeeldprogramma voor het gebruik van For Loop

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

Het gebruik van for-lus is omslachtig, niet altijd beheersbaar bij het vinden van meerdere aantallen resultaten en ook niet leesbaar. Het team gaat dus met de volgende versie in C # 3.0 die is geïntroduceerd, met behulp van deze aanpak kan dit soort problemen worden opgelost, omdat taalgeïntegreerde query de bouwsteen is van query-elementen voor verschillende soorten collecties en ook de resultaten krijgt met een enkele instructie .
Laten we het onderstaande voorbeeld bekijken, waarin wordt uitgelegd dat de LINQ-zoekopdracht met lambda-expressie helpt bij het vinden van een specifieke student uit de verzameling lijsten.

Voorbeeldprogramma

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

Zo maakt Language Integrated Query code extra gecomprimeerd en begrijpelijk en kan het ook worden gebruikt om verschillende gegevensbronnen op te vragen.

Wat is het nut van LINQ

  • Bekende taal
  • Minder codering
  • Leesbare code
  • de identieke techniek van het opvragen van talloze gegevensbronnen
  • Compileer tijdbeveiliging van zoekopdrachten
  • Intelli-Sense-onderhoud
  • Gegevens bepalen

Werken met LINQ

Taal Geïntegreerde query ingeschakeld Gegevensbronnen. de soorten LINQ worden hieronder kort vermeld.

  • LINQ naar objecten
  • LINQ naar XML (XLINQ)
  • LINQ naar dataset
  • LINQ naar SQL (DLINQ)
  • Linq naar entiteiten

1. LINQ naar object

LINQ to Objects presenteert de afhandeling van elke LINQ-query die IE ondersteunt voor toegang tot gegevensverzamelingen en objecten in het geheugen. de retourvariabele in Linq naar objecten zal van het type IE zijn.

2. LINQ naar XML (XLinq)

LINQ naar XML is beschikbaar in de naamruimte System.Xml.Linq. om XML-gegevensbronnen op te vragen, maken we gebruik van LINQ naar XML. Linq to XML maakt bovendien het beste gebruik van .NET framework-functionaliteiten zoals Compile-Time Checking, Debugging en Strong Typen enzovoort. wanneer het laden van XML-documenten in het geheugen eenvoudig en gemakkelijker is bij het wijzigen en opvragen van documenten.

3. LINQ naar dataset

LINQ naar DataSet die zoekopdrachten handhaaft met behulp van ADO.NET-gegevenstabellen en gegevenssets. wanneer gegevens uit verschillende gegevensbronnen worden geconsolideerd, gebruiken we LINQ naar Dataset voor het opvragen van gegevens.

4. LINQ naar SQL

LINQ naar SQL wordt ook DLINQ genoemd en is onderdeel van Language Integrated Query; door het gebruik van LINQ-uitdrukkingen, kunnen gegevens in de SQL Server-database worden opgevraagd.

5. LINQ naar entiteiten

In LINQ naar entiteiten met behulp van C # Het is een gemakkelijke en eenvoudige manier om de entiteiten te bevragen. een zoekopdracht is een uitdrukking die wordt gebruikt om de gegevens uit de gegevensopslag te verkrijgen. door gebruik te maken van deze DBContext in EF 6 of DBContext in EF Core entity framework wordt de query uitgevoerd.

voordelen

Language Integrated Query biedt veel voordelen; Enkele voordelen worden hieronder gegeven.

  • Het helpt bij het ontdekken van fouten tijdens het ontwerpen vanwege syntaxisaccentuering.
  • Het helpt bij het nauwkeuriger schrijven van zoekopdrachten.
  • In Language Integrated Query wordt de ontwikkeltijd verkort omdat het schrijven van code veel sneller en gemakkelijker is in Language Integrated Query.
  • Het is geïntegreerd met C # -taal omdat het gemakkelijk debuggen mogelijk maakt.
  • Het heeft zijn hiërarchische functies omdat het bekijken van de relatie tussen twee tabellen eenvoudiger is en het minder tijd kost om query's te maken met meerdere joins.
  • Language Integrated Query ondersteunt bij een eenvoudigere transformatie voor het converteren van het ene gegevenstype naar een ander gegevenstype, zoals de transformatie van SQL naar XML-gegevens.
  • Door gebruik te maken van LINQ kunnen ontwikkelaars gemakkelijk te onderhouden en te begrijpen vanwege de code leesbaarder.
  • In LINQ is er een uniforme syntaxis voor het doorzoeken van verschillende gegevensbronnen.
  • Tijdens het compileren biedt LINQ typecontrole van objecten.
  • Het ondersteunt het vormgeven van gegevens, we kunnen gegevens in verschillende vormen ophalen.

Waarom zouden we LINQ gebruiken?

Laten we eens kijken waarom Language Integrated Query is ontwikkeld of waarom we LINQ gebruiken, er zijn verschillende punten om te definiëren waarom we Language Integrated Query gebruiken.

  • In vergelijking met SQL is LINQ gemakkelijk te werken, een taal op hoog niveau en goed georiënteerd.
  • Het belangrijkste principe achter het bouwen van LINQ is, eerder in C # 3.0 voor het vinden van een bepaald object dat we voor elke, voor lus, afgevaardigden gebruikten door dit alles te gebruiken, er was een groot nadeel, want om een ​​object te vinden moeten we verschillende regels coderen codering waardoor het programma minder leesbaar en ook meer tijdrovend is. Om deze problemen op te lossen, werd LINQ geïntroduceerd, omdat de taalgeïntegreerde query de programma's / codering in een minder aantal regels doet en ook de code leesbaarder maakt en zodra de code is gestandaardiseerd, kunnen we dezelfde code in verschillende andere programma's gebruiken.
  • Tijdens de runtime helpt het om de fouten te vinden, zodat we de fouten gemakkelijk kunnen verwijderen of corrigeren en biedt het ook compilatiecontrole.
  • LINQ geeft ons op een effectieve manier een nieuwe richting om dergelijke problemen op te lossen; en we kunnen ook taalgeïntegreerde query's gebruiken met collecties en C # array.
  • Het onderhoudt in een query-expressie, uitbreidingsmethoden, impliciete typevariabelen, lambda-expressies, objecten en collecties.
  • In Language Integrated Query is het niet nodig om verschillende soorten talen te leren, omdat een afzonderlijke query met elke soort database kan werken. En het ondersteunt ook elk soort gegevensbron, zoals objecten, XML, entiteiten, SQL enzovoort.

Language Integrated Query Scope

Het is gemaakt om de kloof tussen conventionele .NET te overbruggen, die een objectgeoriënteerde benadering en een sterke typebenadering presenteert. Language Integrated Query introduceerde een eenvoudig te leren model voor het wijzigen en bevragen van gegevens en ondersteunt ook gegevensbronnen zoals XML, gegevensstructuren in het geheugen en relationele gegevens. Language Integrated Query geïntegreerd met een objectgeoriënteerde en relationele benadering. Het is een sterk getypeerde uitdrukking. Sterk getypte uitdrukkingen zorgen ervoor dat de waarde van het juiste type tijdens de compilatie en tijdens runtime voorkomt dat de fouten worden gevonden die zijn gecodeerd.

Waarom hebben we LINQ nodig?

Eerder voor LINQ is het noodzakelijk om SQL, C # en verschillende API's te leren die samenkomen om een ​​volledige applicatie te ontwikkelen. Zodat die programmeertaal en gegevensbronnen met een aantal problemen worden geconfronteerd en codering het ook moeilijk maakt. Laten we eens kijken naar een voorbeeld van verschillende technieken die door programmeurs werden gebruikt bij het opvragen van gegevens vóór de komst van Language Integrated Query.

Voorbeeldprogramma

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;

Hoe deze technologie u helpt bij de groei van uw carrière?

Het is een zoekmachine die helpt bij het stroomlijnen van de gegevensworkflows. Het zal op een goed georiënteerde manier helpen bij de groei van de carrière. Het ondersteunt het hele team eenvoudig om mee te werken en vermindert het herwerken en houdt het project ook binnen de geplande tijd en binnen het geschatte budget.

Conclusie

U hebt goed gelezen hoe LINQ varieert en wordt beter met ADO.NET. Bovendien helpt het bij het besparen van tijd. Uiteindelijk weet u hoe taalgeïntegreerde zoekopdrachten kunnen worden gebruikt voor verschillende soorten gegevensbronnen. In dit artikel hebben we geleerd over het werkproces van de geïntegreerde taalquery en hoe deze te gebruiken. Ik hoop dat dit artikel je zou hebben geholpen.

Aanbevolen artikelen

Dit is een gids voor de What is LINQ ?. Hier bespreken we de definitie, voordelen en het gebruik samen met het voorbeeldprogramma en de scope. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. MongoDB GUI Tools
  2. Wat is Dropbox?
  3. Wat is Laravel?
  4. Wat is StringBuilder in C #