Skip to main content

Τι είναι ένα ολοκληρωμένο ερώτημα γλώσσας;

Το ολοκληρωμένο ερώτημα της γλώσσας (LINQ) παρέχει τη δυνατότητα να ενσωματώνει άψογα τη σύνταξη δηλωτικής ερώτησης σε επιτακτικές γλώσσες, κυρίως C# και VB.NET.Η ανάπτυξη του LINQ έλυσε τα προβλήματα που οι προγραμματιστές που εργάζονται σε αντικειμενικά περιβάλλοντα που συναντώνται κατά την εκτέλεση ερωτημάτων.Εισήχθη ως μέρος της Microsoft Reg..NET Framework Έκδοση 3.5 Τον Νοέμβριο του 2007, και στο Visual Studio Reg.codename orcas.

Πριν από τη δημιουργία ολοκληρωμένου ερωτήματος γλωσσών, οι γλώσσες .NET δεν είχαν καμία εγγενή τρόπο για να ερωτήσουν σχεσιακές βάσεις δεδομένων ή έγγραφα XML.Οι προγραμματιστές που γράφουν σε αυτές τις γλώσσες έπρεπε να ενσωματώσουν το SQL ή το XQuery αντίστοιχα ως χορδές και το χειροκίνητα χαρτογραφώντας δεδομένα σε αντικείμενα .NET.Οι ενσωματωμένες συμβολοσειρές ερωτήσεων και χαρτογραφήσεις δεν μπορούσαν να επικυρωθούν από τους μεταγλωττιστές .NET, επιτρέποντας την ανακάλυψη πιθανών σφαλμάτων κατά τη διάρκεια του χρόνου εκτέλεσης.Καθαρά αντικείμενα.Συνήθως, ο προγραμματιστής θα επαναλάμβανε μια ολόκληρη συλλογή πηγών, δημιουργώντας νέες συλλογές αποτελεσμάτων βασισμένες σε κριτήρια αναζήτησης.Ο προγραμματιστής θα μπορούσε επίσης να μετατρέψει τα δεδομένα κατά την οικοδόμηση των συλλογών αποτελεσμάτων.Αυτή η προσέγγιση ήταν δυσκίνητη.Ένα απλό ερώτημα που γράφτηκε σε C# ή VB θα απαιτούσε τουλάχιστον πέντε γραμμές κώδικα, ενώ το ίδιο ερώτημα θα απαιτούσε μία γραμμή κώδικα σε μια γλώσσα ερωτήματος.

Οι προκλήσεις της ερώτησης μέσα σε ένα αντικειμενοστραφικό περιβάλλον έδωσαν στη Microsoft την ώθηση ναΔημιουργήστε Linq.Το LINQ παρέχει μια σύνταξη ερωτήματος που θυμίζει το SQL για να χρησιμοποιηθεί σε γραμμή με C# ή VB, πλήρης με έλεγχο στατικού τύπου.Κατά την αναζήτηση .NET Συλλογές, αντί να χρησιμοποιούν ένθετες βρόχους, οι προγραμματιστές μπορούν να χρησιμοποιήσουν τη σύνταξη LINQ για να επιλέξουν στοιχεία και να μετασχηματίσουν τα δεδομένα.Μεταξύ άλλων πλεονεκτημάτων, αυτό έχει ως αποτέλεσμα λιγότερες γραμμές κώδικα σε σύγκριση με την καθαρά αντικειμενική σύνταξη.

Κατά την πρόσβαση σε εξωτερικές πηγές δεδομένων, το LINQ και τα εξαρτήματα υποστήριξης αφαιρέστε την ανάγκη για ενσωματωμένες γλώσσες ερωτήσεων και χαρτογραφήσεις δεδομένων εντός μιας ίδιας της γλώσσας .NET.Προκειμένου να εκτελεστεί η χαρτογράφηση δεδομένων, το LINQ εξαρτάται από τα στοιχεία που ονομάζονται παρόχους LINQ.Το LINQ-to-Objects είναι ο πάροχος μετοχών που επιτρέπει στο LINQ να έχει πρόσβαση σε συλλογές .NET.Ομοίως, υπάρχουν πάροχοι για πρόσβαση σε σχεσιακές βάσεις δεδομένων και έγγραφα XML.Οι περισσότεροι από αυτούς τους παρόχους είναι εξαρτήματα τρίτων που δεν περιλαμβάνονται στο πλαίσιο .NET.Ανεξάρτητα από τον χρησιμοποιούμενο πάροχο, όλα τα ερωτήματα χρησιμοποιούν την ίδια σύνταξη LINQ.

Μεταξύ της συνολικής σύνταξης ερωτήσεων και των παρόχων είναι μια βιβλιοθήκη χειριστών ερωτημάτων που προστίθενται στο πλαίσιο .NET ως μέρος των εγκαταστάσεων LINQ.Αυτοί οι φορείς εκμετάλλευσης εκτελούν τέτοια καθήκοντα όπως φιλτράρισμα, παραγγελία, καθορισμένες θεωρητικές λειτουργίες και συσσωμάτωση.Καθώς αυτοί οι χειριστές αποτελούν μέρος του πλαισίου .NET, μπορούν επίσης να χρησιμοποιηθούν χωρίς LINQ εάν ο προγραμματιστής επιλέγει.