Introduction à Language Integrated Query

LINQ est abrégé en Language Integrated Query. Il est établi dans .NET 3.5 et Visual Studio 2008, le concept principal de LINQ est de fournir la possibilité aux langages .NET (comme C #, VB.NET, etc.) de créer des requêtes pour récupérer les données de la source de données. Pour récupérer les données de divers formats et sources en C # et VB.NET sa syntaxe de requête uniforme. Il élimine l'écart entre les bases de données et les langages de programmation car il s'intègre à C # / VB et fournit également cette interface d'interrogation distincte pour différents types de sources de données. Il permet d'utiliser une approche orientée objet sur l'ensemble de résultats; les requêtes résultantes renvoient les résultats sous forme d'objets.

La différence entre SQL et LINQ est que lorsque (Language Integrated Query) est une syntaxe de requête structurée qui intègre VB.NET et C # pour récupérer les données à partir de divers types de sources de données, notamment MS SQL Server, ADO.Net DataSet, service Web, Collections, XML Docs et autres bases de données. De la même manière, SQL est un langage de requête structuré qui est utilisé pour stocker et récupérer les données d'une base de données.

Définition

Language Integrated Query propose une syntaxe compacte significative et compréhensible pour les données d'exploitation. Language Integrated Query est une tactique et un modèle de programmation Microsoft qui inclut efficacement des capacités de requête formelles dans les langages de programmation Microsoft .NET. Il a besoin de la présence d'extensions de langage particulières. La valeur réelle de Language Integrated Query vient de sa capacité à appliquer la même requête à un DataSet, à une base de données SQL, à un tableau d'objets en mémoire et à divers types de données.

Compréhension

Il se compose d'une architecture à trois couches dans laquelle la couche supérieure a les extensions de langage et la couche inférieure a des sources de données qui sont en général des objets implémentant des interfaces génériques IEnumerable ou IQueryable. L'architecture LINQ est illustrée ci-dessous.

En C #, LINQ présente dans le système d'espace de noms. Linq. Il définit différents types de méthodes et de classes prenant en charge les requêtes LINQ. Dans l'espace de noms, il se compose de

  • Une classe énumérable contient des opérateurs de requête standard qui fonctionnent sur l'objet exécutent IEnumerable.
  • La classe Queryable contient des opérateurs de requête standard qui fonctionnent sur l'objet exécutent IQueryable.

Les assemblages de base qu'il contient sont:

  • Utilisation du système. Linq: doter de classes et d'interface pour maintenir les requêtes LINQ
  • Utilisation de System.Collections.Generic: (LINQ to Objects) Laissez l'utilisateur créer des collections fortement typées qui rendent la sécurité et les performances des types disponibles
  • Utilisation de System.Data.Linq: (LINQ to SQL) Offre avec la fonctionnalité permettant d'utiliser des bases de données relationnelles
  • Utilisation de System.XML.Linq: (LINQ to XML) Présente la fonctionnalité pour le droit d'utiliser des documents XML à l'aide de LINQ.
  • Utilisation de System.Data.Linq.Mapping: affectation d'une classe en tant qu'entité connectée à une base de données.

Comment LINQ facilite-t-il le travail?

Travailler avec LINQ est si facile car la requête intégrée au langage fournit une approche de requête intégrée au langage et basée sur les objets. En utilisant une requête intégrée au langage, nous pouvons interroger XML, une base de données et également des collections. Il vérifiera la syntaxe pendant la compilation. Dans Language Integrated Query, l'écriture de codes est plus rapide car le temps de développement est également réduit automatiquement. Pour comprendre pourquoi nous devrions utiliser la requête intégrée au langage, voyons quelques exemples. Supposons que vous souhaitiez localiser la liste des jeunes étudiants à partir d'un tableau d'objets Student.
Avant C # 2.0, nous devions utiliser une boucle «pour chaque» ou «pour» pour parcourir la collection pour découvrir un objet exact. Par exemple, pour écrire le code afin de répertorier tous les objets Student d'un tableau d'étudiants dont la valeur SAge est comprise entre 12 et 20.

Exemple de programme d'utilisation de la boucle For

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

L'utilisation de la boucle for est lourde, non gérable tout le temps lors de la recherche de plusieurs nombres de résultats et non lisible. Donc, l'équipe va avec la prochaine version en C # 3.0, elle a été introduite, en utilisant cette approche peut résoudre ces types de problèmes parce que la requête intégrée au langage est le bloc de construction des éléments de requête pour plusieurs types de collection et obtient également les résultats avec une seule instruction .
Voyons l'exemple ci-dessous qui explique que la requête expression lambda LINQ aide à trouver un étudiant spécifique à partir de la collection de listes.

Exemple de programme

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

Ainsi, Language Integrated Query rend le code compressé et compréhensible en plus et il peut également être utilisé pour interroger plusieurs sources de données.

Quelle est l'utilisation de LINQ

  • Langue bien connue
  • Moins de codage
  • Code lisible
  • la technique identique pour interroger de nombreuses sources de données
  • Protection des requêtes lors de la compilation
  • Maintenance Intelli-Sense
  • Détermination des données

Travailler avec LINQ

Sources de données activées par requête de langue intégrée. les types de LINQ sont mentionnés ci-dessous en bref.

  • LINQ to Objects
  • LINQ to XML (XLINQ)
  • LINQ to Data Set
  • LINQ to SQL (DLINQ)
  • Linq aux entités

1. LINQ to Object

LINQ to Objects présente le traitement de toute requête LINQ prenant en charge IEnumerable pour accéder aux collections de données et aux objets en mémoire. la variable de retour dans Linq aux objets sera de type IEnumerable.

2. LINQ to XML (XLinq)

LINQ to XML est disponible dans l'espace de noms appelé System.Xml.Linq. pour interroger les sources de données XML, nous utilisons LINQ to XML. De plus, Linq to XML utilise au mieux les fonctionnalités du framework .NET telles que la vérification au moment de la compilation, le débogage et le typage fort, etc. lors du chargement de documents XML dans la mémoire est simple et plus facile dans la modification et l'interrogation de documents.

3. LINQ to Dataset

LINQ to DataSet qui gère les requêtes à l'aide de tables de données et d'ensembles de données ADO.NET. lorsque les données sont consolidées à partir de plusieurs sources de données, nous utiliserons LINQ to Dataset pour les requêtes.

4. LINQ to SQL

LINQ to SQL est également appelé DLINQ et fait partie de la requête intégrée de langage; par l'utilisation d'expressions LINQ, il permet d'interroger des données dans la base de données SQL Server.

5. LINQ to Entities

Dans LINQ to Entities à l'aide de C # C'est un moyen simple et simple d'interroger les entités. une requête est une expression utilisée pour obtenir les données du magasin de données. en utilisant ce DBContext dans EF 6 ou DBContext dans le cadre d'entité EF Core interroger la base de données est fait.

Les avantages

L'interrogation intégrée de la langue offre une multitude d'avantages; Certains des avantages sont donnés ci-dessous.

  • Son aide à trouver des erreurs lors de la conception en raison de la coloration syntaxique.
  • Cela aide à rédiger une requête plus précisément.
  • Dans Language Integrated Query, le temps de développement sera réduit car l'écriture de code est beaucoup plus rapide et plus facile dans Language Integrated Query.
  • Il est intégré au langage C # car il facilite le débogage.
  • Il a ses caractéristiques hiérarchiques, car la visualisation de la relation entre deux tables est plus facile et prend moins de temps pour créer des requêtes à l'aide de plusieurs jointures.
  • Language Integrated Query prend en charge une transformation plus facile pour la conversion d'un type de données en un autre type de données, comme la transformation de SQL en données XML.
  • En utilisant LINQ, les développeurs peuvent facilement être maintenus et compréhensibles en raison de leur code plus lisible.
  • Dans LINQ, il y aura une syntaxe uniforme pour interroger plusieurs sources de données.
  • Pendant la compilation, LINQ fournit une vérification de type des objets.
  • Il prend en charge la mise en forme des données, nous pouvons récupérer des données sous différentes formes.

Pourquoi devrions-nous utiliser LINQ?

Voyons pourquoi Language Integrated Query est développé ou pourquoi nous utilisons LINQ, il y a plusieurs points pour définir pourquoi nous utilisons Language Integrated Query.

  • En comparaison avec SQL, LINQ est facile à travailler, un langage de haut niveau et bien orienté.
  • Le principe majeur derrière la construction de LINQ est, plus tôt dans C # 3.0 pour trouver un objet particulier que nous utilisions pour chacun, pour les délégués en boucle, en utilisant tout cela, il y avait un inconvénient majeur parce que pour trouver un objet, nous devons coder plusieurs lignes de codage qui crée un programme moins lisible et aussi plus long. Pour surmonter ces problèmes, LINQ a été introduit, car la requête intégrée au langage fera les programmes / codage en un nombre de lignes très inférieur et le code sera également plus lisible et une fois le code normalisé, nous pouvons utiliser le même code dans plusieurs autres programmes.
  • Pendant l'exécution, il aide à trouver les erreurs afin que nous puissions facilement supprimer ou corriger les erreurs et fournit également une vérification au moment de la compilation.
  • De manière efficace, LINQ nous donne une nouvelle direction pour résoudre ces problèmes; et nous pouvons également utiliser une requête intégrée au langage avec des collections et un tableau C #.
  • Son maintient dans une expression de requête, des méthodes d'extension, des variables de type implicites, des expressions lambda, des objets et des collections.
  • Dans Language Integrated Query, il n'est pas nécessaire d'apprendre différents types de langues car une requête distincte peut fonctionner avec n'importe quel type de base de données. Et il prend également en charge tout type de source de données comme les objets, XML, entités, SQL, etc.

Étendue de la requête intégrée au langage

Il est créé pour combler l'écart entre le .NET conventionnel, qui présente une approche orientée objet et une approche de typage fort. Language Integrated Query a introduit un modèle d'apprentissage facile pour modifier et interroger des données et il prend également en charge les sources de données qui incluent XML, les structures de données en mémoire et les données relationnelles. Language Integrated Query intégré à une approche orientée objet et relationnelle. C'est une expression fortement typée. Les expressions fortement typées s'assurent que la valeur du bon type au moment de la compilation et pendant l'exécution empêche les erreurs d'être trouvées lors du codage.

Pourquoi avons-nous besoin de LINQ?

Plus tôt dans LINQ, il est nécessaire d'apprendre SQL, C # et plusieurs API qui se lient ensemble pour développer une application entière. Pour que ce langage de programmation et ces sources de données soient confrontés à des problèmes et au codage, il est également difficile. Voyons un exemple de plusieurs techniques utilisées par les programmeurs lors de l'interrogation de données avant l'arrivée de Language Integrated Query.

Exemple de programme

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;

Comment cette technologie vous aidera dans la croissance de carrière?

Il s'agit d'un moteur de recherche qui aide à rationaliser les flux de données. Il contribuera à la croissance de carrière d'une manière bien orientée. Il prend en charge l'ensemble de l'équipe facile à travailler et réduit les retouches et maintient également le projet dans les délais prévus et dans les limites du budget estimé.

Conclusion

Vous avez bien lu comment LINQ varie et vous vous améliorez sur ADO.NET. De plus, son aide à gagner du temps. En fin de compte, vous savez comment les requêtes intégrées aux langues peuvent être utilisées pour plusieurs types de sources de données. Dans cet article, nous avons découvert le processus de travail de la requête intégrée au langage et comment l'utiliser. J'espère que cet article vous aurait aidé.

Articles recommandés

Ceci est un guide de Qu'est-ce que LINQ ?. Nous discutons ici de la définition, des avantages et de l'utilisation avec l'exemple de programme et la portée. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Outils GUI MongoDB
  2. Qu'est-ce que Dropbox?
  3. Qu'est-ce que Laravel?
  4. Qu'est-ce que StringBuilder en C #