Je lis un livre et il dit: "si vous créez votre propre couche d'accès aux données en utilisant ADO.NET pour accéder à votre base de données, vous serez peu affecté si le schéma de données existe ou non. Si toutefois vous utilisez un O/RM, votre flexibilité sera limitée par l'outil que vous utilisez ". Quelle est la principale différence entre ADO.NET et tout autre ORM?
ADO.NET fournit un accès cohérent aux sources de données telles que SQL Server et XML, et aux sources de données exposées via OLE DB et ODBC. Les applications grand public de partage de données peuvent utiliser ADO.NET pour se connecter à ces sources sources de données et récupérer, gérer et mettre à jour les données qu'elles contiennent.
ADO.NET sépare l'accès aux données de la manipulation des données en composants discrets qui peuvent être utilisés séparément ou en tandem. ADO.NET inclut des fournisseurs de données .NET Framework pour se connecter à une base de données, exécuter des commandes et récupérer les résultats. Ces résultats sont soit traités directement, placés dans un objet DataSet ADO.NET afin d'être exposés à l'utilisateur de manière ad hoc, combinés avec des données provenant de plusieurs sources, ou transmis entre les niveaux. L'objet DataSet peut également être utilisé indépendamment d'un fournisseur de données .NET Framework pour gérer des données locales à l'application ou provenant de XML.
ADO.NET est une couche qui vous permet de vous connecter à une base de données et de la modifier à l'aide de connexions, commandes et paramètres SQL. ADO.NET MSDN
Le mappage relationnel-objet (ORM, O/RM et outil de mappage O/R) en informatique est une technique de programmation pour convertir des données entre des systèmes de type incompatibles dans des langages de programmation orientés objet. Cela crée, en effet, une "base de données d'objets virtuels" qui peut être utilisée à partir du langage de programmation. Il existe des packages gratuits et commerciaux qui effectuent le mappage relationnel-objet, bien que certains programmeurs choisissent de construire leurs propres outils ORM.
Entity Framework
et NHibernate
sont des ORM. Cela signifie que vous n'opérez pas par des connexions SQL, des commandes, des paramètres - ORM le fait pour vous et permet de mapper la structure de votre base de données de manière OOP manière: vous pouvez ajouter, lire, mettre à jour, supprimer des enregistrements dans votre base de données à l'aide d'objets en C #. Vous devez uniquement mapper correctement votre objet à la base de données. Entity Framework
est construit sur ADO.NET et utilise ADO.NET à l'intérieur. Les instructions SQL sont générées par ORM. ORM
En règle générale, l'accès à la base de données sans ORM est plus rapide, mais vous devez fournir davantage de lignes de code. Si vous souhaitez faire fonctionner votre base de données de manière OOP et écrire du code plus lisible, vous devez choisir ORM. Cela dépend de vos objectifs de ce que vous choisissez.
Il existe des Micro ORM (Dapper, BLToolkit) qui vous permettent d'écrire des requêtes SQL et de mapper les paramètres aux propriétés des objets. Les micro ORM, en général, ont de meilleures performances que les ORM complets, mais ADO.NET est toujours plus rapide.
En outre, il y a quelques questions et réponses sur StackOverflow: EF vs ADO.NET
DataSets
et DataReaders
ADO.NET.
Object-Relational Mapper
qui consiste à mapper un objet avec un monde relationnel. Comme son nom l'indique builds a relation / maps objects (model) to database objects(tables).
ADO.NET
Était le moyen traditionnel de connecter votre application à une base de données et donnait au développeur le contrôle total sur les opérations de la base de données tandis que ORM
est construit au-dessus de ADO.NET
Et utilise ADO.NET
Implicitement.ORM.
ORM
tout n'est pas entre vos mains car toutes les requêtes sont générées par le ORM
lui-même. Maintenant, nous ne savons pas si ces requêtes sont optimisées ou non.Dans les scénarios où les performances de votre application sont une préoccupation principale et absolument cruciale OU dans les scénarios où vous savez que votre application deviendra énorme dans un futur proche, il est conseillé d'utiliser
ADO.NET
plutôt queEntity Framework
car cela alourdit votre application.
Micro ORM's
Comme Dapper, BLToolkit. Ceux-ci fournissent l'essentiel de ce que les développeurs veulent - un moyen facile de mapper les opérations de base de données à des classes fortement typées.raw speed.
Dapper
ne fait que du mappage mais vous devez beaucoup coder, EF
en fait beaucoup plus en plus et pas seulement du mappage. Donc EF sera lent.ADO.NET
Pur est plus rapide que Dapper
, OLEDB
est plus rapide que ADO.NET
Et ODBC
peut être plus rapide que OLEDB.
ORM.