Quelle est la différence entre LINQ to SQL et ADO.net?
Réponses
Trop de publicités?ADO.NET est l'API d'accès aux données sous-jacente pour .NET Framework (un peu comme JDBC en Java). Il existe depuis la première version de .NET.
LINQ to SQL est un cadre d'accès aux données construit sur ADO.NET et de nouvelles fonctionnalités de langage qui rendent les données SQL Server disponibles nativement dans le style de programmation orienté objet.
Vous devez commencer avec la compréhension que LINQ Microsoft, qui est destiné paradigme pour les requêtes de toutes sortes de données structurées de manière déclarative avec un outil de penser "Un Anneau Pour les gouverner Tous". LINQ to SQL est juste la première manifestation, mis en œuvre pour interroger les bases de données relationnelles.
En fait, Microsoft a un message contradictoire sur LINQ relation avec SQL. Je pense que le problème est qu'il est désormais compris comme un substitut pour d'autres abstraction des stratégies, et il est aujourd'hui souvent considérée comme un moyen pour les programmeurs afin d'éviter le besoin de devenir habile à SQL.
ADO.Net traite de la programmation orientée objet pour ce qu'il est, et de données relationnelles comme ce qu'elle est, et attend que vous pour faire de chaque correctement sur ses propres termes.
Les avantages et les inconvénients de les deux sont ouverts au débat. Mais si vous acceptez que Microsoft Informatique d'assistants de venir avec quelque chose d'un uber-l'abstraction de données structurées de l'interrogation, alors vous aurez probablement envie d'aller dans cette direction. Il ya quelques indications que les autres logiciels fournisseurs de produits sont prêts à jouer le jeu, de sorte qu'il peut même ne pas être totalement propriétaire, ce qui serait une bonne chose.
Il ya un assez grand nombre de différences entre ces deux technologies qui ne peut pas être fait dans un court laps de tant de poster, mais je vais essayer de couvrir les faits saillants
- Dans Linq2Sql vous écrire vos requêtes dans les objets de la mémoire. Sous le capot si le code que vous écrivez est traduit à l'expression des arbres et est traduite à SQL au moment de l'exécution, où la requête est exécuté. Dans ADO.Net vous directement créer des requêtes SQL qui sont exécutés sur le serveur.
- Linq2Sql a direct support de la langue en C# et VB.Net. ADO.Net fournit un support pour la chaîne de requête qui ont 0 de soutien en langue autre que juste un cru de la chaîne.
- Le support de la langue dans Linq2Sql fait des requêtes de type sécuritaire. Dans ADO.Net tous les résultats de la requête doit être converti dans le type approprié qui élimine essentiellement types de vérifications de sécurité.
ADO.NET est un ensemble de bibliothèques de classes qui fournissent des données de base des infrastructures d'accès sur le dessus de .NET de Base des Bibliothèques de Classe. Il contient également de base LINQ d'infrastructure, tels que la statique de la classe de Énumérable (qui fournissent des LINQ to Object) et une interface de requête de données relationnelles telles que IQueryable.
LINQ to SQL n'est PAS un accès aux données-cadre.
ADO.NET peut être considéré comme un accès aux données-cadre, mais cela peut être trompeur, puisque ADO.NET n'est pas un produit autonome. ADP.NET est vraiment une partie de .NET Framework.
LINQ to SQL est simplement une mise en œuvre de LINQ pour fonctionner comme un fournisseur de données qui se connectent et des cartes directement à SQL Server. En dessous de LINQ to SQL, prévoit de lourdes usages de ADO.NET les classes dans le Système.Les données.SqlClient, il est donc mis en œuvre sur le dessus de ADO.NET mais en se concentrant sur et il est spécifique à l'accès à sql server.