J'ai créé mes exemples de sujets d'accès aux données dans ce référentiel. J'ai des exemples et des projets sur des sujets tels que le framework d'entités, les données d'abord, le code d'abord, Orm, la création de bases de données.
C'est un outil qui fait le pont entre une base de données relationnelle et la programmation orientée objet (POO). Ce pont est une structure dans laquelle nous utilisons nos modèles objet pour gérer nos informations dans la base de données relationnelle. Bref, c'est un framework développé par Microsoft qui connecte nos objets à la base de données et échange des données pour nous.
En utilisant les requêtes LINQ (Language Integrated Query) avec le framework Entity, nous disposons d'une requête puissante sur les objets. Les services fournis par le framework Entity sont principalement le suivi des modifications, la résolution d'identité et la traduction des requêtes. L'objectif principal du framework Entity est de permettre au développeur d'applications de se concentrer sur le côté application sans être trop occupé par les opérations de données. À titre d'exemple très simple, nous, les développeurs, sommes entièrement responsables de l'ouverture et de la fermeture d'une connexion dans les applications ADO.NET classiques. Cependant, lorsque vous utilisez le framework d'entité, vous n'interférez pas avec de telles opérations. Vous préparez votre requête et l'envoyez à la base de données via le framework d'entité.
Entity Framework utilise pour cela 3 méthodes de développement de projet différentes.
Model First = Cette méthode permet de concevoir la base de données sur ce modèle en ajoutant un fichier modèle vide (.edmx) sur Visual Studio. Le fichier script donné à l'étape de compilation crée la base de données.
Database First = Dans ce sens, nos classes nécessaires sont créées par Entity Framework en connectant la base de données précédemment créée au projet en tant que modèle.
Dans ce dossier, j'ai d'abord montré mes exemples de base de données. Pages GitHub.
Code First = Cette méthode est une méthode que nous exécutons en commençant à créer nos classes dans l'environnement Visual Studio. Notre base de données est dérivée de ces classes. Ici, les opérations de Mapping peuvent être effectuées par le développeur grâce aux Attributs lors de la création des classes. D'ailleurs, le processus Mapping est l'événement où nous définissons nos contraintes dans nos tables. En plus des attributs, nous pouvons effectuer ces opérations de différentes manières. Par exemple, des outils tels que Fluent Api ou Fluent Validation sont couramment utilisés pour les opérations de cartographie.
Grâce à la bibliothèque Entity Framework, nous pouvons filtrer les données en effectuant des requêtes sur une table de notre base de données. Presque toutes les requêtes que vous pouvez effectuer sur T-SQL peuvent être effectuées avec Entity Framework.
Ici, j'ai montré les opérations de sélection de base. Pages GitHub.
Vous pouvez également utiliser les fonctions intégrées de requêtes T-SQL et de reporting avec la bibliothèque Entity Framework.
Ici, j'ai montré nos fonctions d'agrégation de base. Pages GitHub.
Dans la structure Code First, les structures « classes » du langage de programmation correspondent aux structures « tables » de la base de données, et les structures « propriétés » correspondent aux structures « colonnes » de la base de données. De plus, grâce aux Attributs, Des validations peuvent être appliquées aux structures de bases de données et certaines conditions ou restrictions peuvent être placées sur les colonnes. Plus important encore, cela vous permet de ressentir le contrôle automatique du modèle dans votre projet et de l'utiliser à votre guise avec un contrôle total.
Vous pouvez voir mon exemple sur le sujet ici. Pages GitHub.
J'ai créé une base de données vir que vous pouvez utiliser ici.
Vous pouvez le vérifier ici. Pages GitHub.
Il s'agit d'une structure qui rend nos projets d'architecture en couches plus organisés, augmente la lisibilité du code, augmente le travail d'équipe et facilite la gestion des erreurs. En fait, avec cette structure, nous avons fait de la rédaction de projets un standard. Comme cette structure se compose de 3 couches principales, elle peut aujourd’hui être appelée une structure d’architecture multicouche. Mais il repose en réalité sur 3 couches principales. Ces couches sont :
-- Couche de données -- Couche métier -- Couche de présentation
Ici j'ai créé mes entités correspondant à ma base de données.GitHub Pages.
Ici, j'ai créé ma couche d'infrastructure.GitHub Pages.
J'ai créé mon interface utilisateur ici.GitHub Pages.
Dapper est un outil micro ORM développé par Stackoverflow qui prend en charge de nombreuses bases de données. Étant donné que les outils orm font beaucoup de choses eux-mêmes, cela les rend un peu lents. Il n’est pas préféré notamment dans les ports à fort trafic. Dapper peut être préféré dans de tels cas. Il s'agit d'une seule "dll". Alors, qu’est-ce qu’une interface de cartographie ? Il ne nécessite également aucun fichier de configuration. Bref, c'est simple et rapide. Publié en open source sur Github et continue d'être développé.
--La caractéristique la plus importante de Dapper est ses très bonnes performances. La plupart du temps, on le préfère en raison de cet avantage.
--Vous pouvez facilement exécuter vos requêtes et lier facilement le résultat renvoyé à un objet.
--L'inconvénient le plus important est que, puisque les requêtes sont écrites en ligne, elles sont assez sujettes aux erreurs. Il faut y prêter attention. Pire encore, ces erreurs se produisent au moment de l’exécution et non au moment de la construction.
--Chez Dapper, nous faisons la plupart des choses. Le développeur doit s'occuper de la base de données, de nos requêtes, de nos actifs côté programme et du statut des objets. Cela augmente considérablement les coûts de développement et de maintenance pendant les étapes de développement des grands projets.
J'ai essayé d'utiliser 2 méthodes dans ce référentiel. J'ai travaillé avec mes procédures en SQL dans un référentiel et dans mon autre référentiel en écrivant mes requêtes directement sur le programme.
-- J'ai d'abord créé la base de données en SQL.
-- Par la suite, j'ai adapté mes procédures aux méthodes que j'utiliserai dans mon programme. Vous pouvez regarder d'ici. Pages GitHub
--Dans mon programme j'ai également créé mes couches et actifs, mes référentiels que j'utiliserai avec mes procédures. L'important ici est de donner correctement mes procédures et les paramètres que j'y utiliserai. Sinon, nous aurons beaucoup d'erreurs. Vous pouvez regarder d'ici. Pages GitHub
-- J'ai créé la connexion avec la base de données avec "connection". Vous pouvez regarder d'ici. Pages GitHub
-- J'ai créé ma dernière interface utilisateur et effectué les actions souhaitées. Vous pouvez regarder d'ici. Pages GitHub
Ici, j'ai écrit mes requêtes qui exécuteront l'opération que je souhaite directement dans SQL. Il faut vraiment être très prudent lors de la rédaction des requêtes ici. Une erreur peut faire perdre beaucoup de temps. Quant aux paramètres, les valeurs correspondantes des paramètres dans la requête doivent être correctes. Mais pour moi, les exceptions sont assez explicites dans Dapper. C'est vraiment utile de trouver facilement des défauts.
Vous pouvez regarder d'ici. Pages GitHub
Ici, j'ai montré mes actions dans l'interface utilisateur.
Vous pouvez regarder d'ici. Pages GitHub