Einführung in die sprachintegrierte Abfrage

LINQ wird als Language Integrated Query abgekürzt. Es wurde in .NET 3.5 und Visual Studio 2008 entwickelt. Das Hauptkonzept von LINQ besteht darin, .NET-Sprachen (wie C #, VB.NET usw.) die Möglichkeit zu bieten, Abfragen zu erstellen, um Daten aus der Datenquelle zurückzugewinnen. Abrufen der Daten aus verschiedenen Formaten und Quellen in C # und VB.NET anhand der einheitlichen Abfragesyntax. Es beseitigt die Varianz zwischen Datenbanken und Programmiersprachen, da es in C # / VB integriert ist und außerdem eine eindeutige Abfrageoberfläche für verschiedene Arten von Datenquellen bietet. Es ermöglicht die Verwendung eines objektorientierten Ansatzes für die Ergebnismenge. Die resultierenden Abfragen geben Ergebnisse als Objekte zurück.

Der Unterschied zwischen SQL und LINQ besteht darin, dass (Language Integrated Query) eine strukturierte Abfragesyntax aufweist, die in VB.NET und C # integriert ist, um die Daten aus verschiedenen Arten von Datenquellen abzurufen, einschließlich MS SQL Server, ADO.Net DataSet und Webdienst, Sammlungen, XML-Dokumente und andere Datenbanken. Ebenso ist SQL eine strukturierte Abfragesprache, die zum Speichern und Abrufen der Daten aus einer Datenbank verwendet wird.

Definition

Language Integrated Query schlägt eine kompakte, aussagekräftige und verständliche Syntax für Betriebsdaten vor. Language Integrated Query ist eine Programmiertaktik und ein Modell von Microsoft, die formale Abfragefähigkeiten in Microsoft .NET-Programmiersprachen effektiv einschließt. Es müssen bestimmte Spracherweiterungen vorhanden sein. Der tatsächliche Wert von Language Integrated Query ergibt sich aus der Fähigkeit, dieselbe Abfrage auf ein DataSet, eine SQL-Datenbank, ein Array von Objekten im Speicher und auch auf verschiedene Datentypen anzuwenden.

Verstehen

Es besteht aus einer dreischichtigen Architektur, in der die obere Schicht die Spracherweiterungen und die unterste Schicht Datenquellen enthält, die in allgemeinen Objekten IEnumerable- oder IQueryable-generische Schnittstellen implementieren. Die LINQ-Architektur ist unten dargestellt.

In C # wird LINQ im Namespace System dargestellt. Linq. Es definiert verschiedene Arten von Methoden und Klassen, die die LINQ-Abfragen unterstützen. Im Namespace besteht es aus

  • Eine Aufzählungsklasse enthält Standardabfrageoperatoren, die für das Ausführen von IEnumerable für Objekte funktionieren.
  • Die Queryable-Klasse enthält Standard-Abfrageoperatoren, mit denen IQueryable für Objekte ausgeführt wird.

Die Kernbaugruppen darin sind:

  • System verwenden. Linq: Mit Classes & Interface können Sie LINQ-Abfragen verwalten
  • Verwenden von System.Collections.Generic: (LINQ to Objects) Der Benutzer kann stark typisierte Auflistungen erstellen, die Typensicherheit und -leistung bereitstellen
  • Verwenden von System.Data.Linq: (LINQ to SQL) Bieten Sie die Funktionalität an, um relationale Datenbanken zu verwenden
  • Verwenden von System.XML.Linq: (LINQ to XML) Enthält die Funktionalität zum Verwenden von XML-Dokumenten mit LINQ.
  • Verwenden von System.Data.Linq.Mapping: Eine Klasse wurde als Entität zugewiesen, die mit einer Datenbank verbunden ist.

Wie macht LINQ das Arbeiten so einfach?

Die Arbeit mit LINQ ist so einfach, weil die sprachintegrierte Abfrage einen sprachintegrierten und objektbasierten Ansatz für die Abfrage bietet. Durch die Verwendung von sprachintegrierten Abfragen können wir XML, Datenbanken und auch Sammlungen abfragen. Die Syntax wird während der Kompilierung überprüft. In Language Integrated Query ist das Schreiben von Codes schneller, da sich die Entwicklungszeit automatisch verringert. Um zu erkennen, warum wir eine sprachintegrierte Abfrage verwenden sollten, sehen wir uns einige Beispiele an. Angenommen, Sie möchten die Liste der jungen Schüler aus einer Reihe von Schülerobjekten suchen.
Vor C # 2.0 mussten wir eine 'for each'- oder eine' for'-Schleife verwenden, um die Auflistung zu durchsuchen und ein genaues Objekt zu ermitteln. Beispiel: Schreiben Sie den Code, um alle Student-Objekte aus einem Array von Students aufzulisten, bei denen die SAge zwischen 12 und 20 liegt.

Beispielprogramm für die Verwendung von 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++;
)
)
)
)

Die Verwendung der for-Schleife ist mühsam, nicht immer zu handhaben, wenn mehrere Ergebnisse gefunden werden, und auch nicht lesbar. Das Team geht mit der nächsten in C # 3.0 eingeführten Version vor. Mit diesem Ansatz können Probleme dieser Art behoben werden, da die sprachintegrierte Abfrage der Baustein von Abfrageelementen für verschiedene Arten von Auflistungen ist und die Ergebnisse auch mit einer einzigen Anweisung abgerufen werden .
Im folgenden Beispiel wird erläutert, wie mit der LINQ-Abfrage für Lambda-Ausdrücke ein bestimmter Schüler aus der Auflistung von Listen ermittelt werden kann.

Beispielprogramm

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

So macht Language Integrated Query Code zusätzlich komprimiert und verständlich und kann auch zum Abfragen mehrerer Datenquellen verwendet werden.

Was ist die Verwendung von LINQ

  • Bekannte Sprache
  • Weniger Codierung
  • Lesbarer Code
  • die identische Technik zum Abfragen zahlreicher Datenquellen
  • Kompilierzeitschutz von Abfragen
  • Intelli-Sense-Wartung
  • Daten ermitteln

Mit LINQ arbeiten

Sprachintegrierte abfragefähige Datenquellen. Die Arten von LINQ werden im Folgenden kurz erwähnt.

  • LINQ zu Objekten
  • LINQ to XML (XLINQ)
  • LINQ to Data Set
  • LINQ to SQL (DLINQ)
  • Linq to Entities

1. LINQ to Object

LINQ to Objects stellt die Behandlung aller LINQ-Abfragen dar, die IEnumerable für den Zugriff auf speicherinterne Datensammlungen und Objekte unterstützen. Die Rückgabevariable in Linq to Objects ist vom Typ IEnumerable.

2. LINQ to XML (XLinq)

LINQ to XML ist im Namespace System.Xml.Linq verfügbar. Um XML-Datenquellen abzufragen, verwenden wir LINQ to XML. Darüber hinaus nutzt Linq to XML .NET Framework-Funktionen wie Compile-Time-Checking, Debugging, Strong Typing und so weiter optimal aus. beim Laden von XML-Dokumenten in den Speicher ist das Ändern und Abfragen von Dokumenten einfach und einfacher.

3. LINQ to Dataset

LINQ to DataSet, das Abfragen mithilfe von ADO.NET-Datentabellen und -Datensätzen verwaltet. Wenn Daten aus mehreren Datenquellen konsolidiert werden, verwenden wir LINQ to Dataset zum Abfragen.

4. LINQ to SQL

LINQ to SQL wird auch als DLINQ bezeichnet und ist Teil einer sprachintegrierten Abfrage. Mithilfe von LINQ-Ausdrücken können Daten in der SQL Server-Datenbank abgefragt werden.

5. LINQ to Entities

In LINQ to Entities mithilfe von C # können Sie die Entitäten auf einfache Weise abfragen. Eine Abfrage ist ein Ausdruck, mit dem die Daten aus dem Datenspeicher abgerufen werden. Wenn Sie diesen DBContext in EF 6 oder DBContext in EF Core verwenden, wird die Datenbank abgefragt.

Vorteile

Integrierte Sprachabfrage bietet eine Vielzahl von Vorteilen; Einige der Vorteile sind unten angegeben.

  • Es hilft beim Auffinden von Fehlern während der Entwurfszeit, da die Syntax hervorgehoben wird.
  • Es hilft beim Schreiben einer genaueren Abfrage.
  • In Language Integrated Query wird die Entwicklungszeit reduziert, da das Schreiben von Code in Language Integrated Query viel schneller und einfacher ist.
  • Es ist in die C # -Sprache integriert, da es das Debuggen vereinfacht.
  • Es hat seine hierarchischen Merkmale, da das Anzeigen der Beziehung zwischen zwei Tabellen einfacher ist und weniger Zeit für das Erstellen von Abfragen mit mehreren Joins erforderlich ist.
  • Language Integrated Query unterstützt eine einfachere Transformation für die Konvertierung von einem Datentyp in einen anderen Datentyp, z. B. die Transformation von SQL- in XML-Daten.
  • Durch die Verwendung von LINQ können Entwickler den Code einfach warten und verständlicher machen, da er besser lesbar ist.
  • In LINQ wird es eine einheitliche Syntax für die Abfrage mehrerer Datenquellen geben.
  • Während der Kompilierung bietet LINQ die Typprüfung von Objekten.
  • Es unterstützt die Formung von Daten, wir können Daten in verschiedenen Formen abrufen.

Warum sollten wir LINQ verwenden?

Lassen Sie uns sehen, warum die sprachintegrierte Abfrage entwickelt wird oder warum wir LINQ verwenden. Es gibt mehrere Punkte, die definieren, warum wir die sprachintegrierte Abfrage verwenden.

  • Im Vergleich zu SQL ist LINQ einfach zu bedienen, eine Hochsprache und gut orientiert.
  • Das Hauptprinzip beim Erstellen von LINQ besteht darin, dass in früheren Versionen von C # 3.0 zum Auffinden eines bestimmten Objekts, das wir für jeden for-Schleifendelegierten verwendet haben, alle diese Elemente verwendet wurden, ein Hauptnachteil bestand darin, dass zum Auffinden eines Objekts mehrere Zeilen codiert werden müssen Codierung, die das Programm weniger lesbar und auch zeitaufwendiger macht. Um diese Probleme zu lösen, wurde LINQ eingeführt, da die sprachintegrierte Abfrage die Programme / Codierung in einer sehr geringen Anzahl von Zeilen ausführt und außerdem den Code besser lesbar macht. Sobald der Code standardisiert ist, können wir denselben Code in mehreren anderen Programmen verwenden.
  • Während der Laufzeit hilft es, die Fehler zu finden, damit wir sie leicht beseitigen oder korrigieren können, und es bietet auch die Möglichkeit, die Kompilierzeit zu überprüfen.
  • In effektiver Weise gibt uns LINQ eine neue Richtung, um solche Probleme zu lösen. Außerdem können wir sprachintegrierte Abfragen mit Sammlungen und C # -Arrays verwenden.
  • Sie verwaltet in einem Abfrageausdruck Erweiterungsmethoden, implizite Typvariablen, Lambda-Ausdrücke, Objekte und Auflistungen.
  • In Language Integrated Query müssen keine verschiedenen Arten von Sprachen erlernt werden, da eine bestimmte Abfrage mit jeder Art von Datenbank funktionieren kann. Außerdem werden alle Arten von Datenquellen wie Objekte, XML, Entitäten, SQL usw. unterstützt.

Sprachintegrierter Abfragebereich

Es wird erstellt, um die Lücke zwischen herkömmlichem .NET zu schließen, das einen objektorientierten Ansatz und einen starken Typisierungsansatz bietet. Mit Language Integrated Query wurde ein einfach zu erlernendes Modell zum Ändern und Abfragen von Daten eingeführt. Außerdem werden Datenquellen unterstützt, die XML, speicherinterne Datenstrukturen und relationale Daten enthalten. Integrierte Sprachabfrage integriert mit einem objektorientierten und relationalen Ansatz. Es ist ein stark typisierter Ausdruck. Stark typisierte Ausdrücke stellen sicher, dass der Wert zur Kompilierungszeit vom richtigen Typ ist und während der Laufzeit verhindert, dass die gefundenen Fehler codiert werden.

Warum brauchen wir LINQ?

In früheren Versionen von LINQ ist es erforderlich, SQL, C # und mehrere APIs zu lernen, die zusammen eine ganze Anwendung entwickeln. Damit diese Programmiersprache und Datenquellen einige Probleme haben und die Codierung es auch schwierig macht. Sehen wir uns ein Beispiel für verschiedene Techniken an, die von Programmierern beim Abfragen von Daten vor dem Eintreffen von Language Integrated Query verwendet wurden.

Beispielprogramm

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;

Wie hilft Ihnen diese Technologie beim Karrierewachstum?

Es ist eine Suchmaschine, die bei der Rationalisierung der Daten-Workflows hilft. Es wird auf eine gut orientierte Art und Weise zum Karrierewachstum beitragen. Es unterstützt das gesamte Team bei der einfachen Arbeit, reduziert die Nacharbeit und hält das Projekt auch termingerecht und innerhalb des geschätzten Budgets.

Fazit

Sie haben genau gelesen, wie sich LINQ von ADO.NET unterscheidet und wie Sie es verbessern können. Darüber hinaus hilft es bei der Zeitersparnis. Letztendlich wissen Sie, wie sprachintegrierte Abfragen für verschiedene Arten von Datenquellen verwendet werden können. In diesem Artikel haben wir den Arbeitsprozess der sprachintegrierten Abfrage und deren Verwendung kennengelernt. Ich hoffe, dieser Artikel hätte dir geholfen.

Empfohlene Artikel

Dies ist eine Anleitung zu Was ist LINQ ?. Hier diskutieren wir die Definition, die Vorteile und die Verwendung zusammen mit dem Beispielprogramm und dem Gültigkeitsbereich. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. MongoDB GUI Tools
  2. Was ist Dropbox?
  3. Was ist Laravel?
  4. Was ist StringBuilder in C #