NHibernate - ORM

Avant de pouvoir vraiment commencer à utiliser NHibernate, nous devons comprendre les fondements sur lesquels il est construit. NHibernate est une technologie de persistance basée sur l'idée de cartographie relationnelle d'objets ou ORM.

Qu'est-ce que l'ORM?

Object-Relational Mapping (ORM) est un programming techniquepour convertir des données entre des systèmes de types incompatibles dans des langages de programmation orientés objet. En d'autres termes, il s'agit du concept de mappage des objets métier d'une application sur des tables de base de données relationnelle, de sorte que les données puissent être facilement accessibles et entièrement mises à jour via le modèle objet d'une application.

  • Comme vous le savez déjà, les bases de données relationnelles constituent un bon moyen de stocker des données, tandis que la programmation orientée objet est une bonne approche pour créer des applications complexes.

  • NHibernate et ORM en général sont les plus pertinents pour les applications avec une logique métier non triviale, le modèle de domaine et une sorte de base de données.

  • Avec ORM, il est très facile de créer une couche de traduction qui peut facilement transformer des objets en données relationnelles et inversement.

  • L'acronyme ORM peut également signifier la modélisation de rôle d'objet, et ce terme a été inventé avant que le mappage objet / relationnel ne devienne pertinent.

  • Il décrit une méthode d'analyse des informations, utilisée dans la modélisation de bases de données.

Pourquoi ORM?

ORM est un framework qui vous permet de mapper le monde des objets trouvés dans les langages orientés objet aux lignes des tables relationnelles trouvées dans les bases de données relationnelles

Pour comprendre ce concept, jetons un œil au diagramme suivant.

  • Dans le diagramme ci-dessus, vous pouvez voir que nous avons une table appelée Employé sur le côté droit qui contient des colonnes avec chaque élément de données associé à un employé individuel.

  • Nous avons une colonne pour un identifiant qui identifie de manière unique chaque employé.

  • Une colonne pour le nom de l'employé, une autre colonne pour sa date d'adhésion, et enfin une colonne qui a l'âge d'un employé.

  • Si nous voulions écrire du code pour stocker un nouvel employé dans les tables, ce n'est pas si simple.

  • Dans le diagramme ci-dessus, vous pouvez également voir que nous avons un objet employé qui contient des champs pour l'ID, le nom, la date d'adhésion et l'âge.

  • Sans ORM, nous devons traduire cet objet en quelques instructions SQL différentes qui inséreront les données des employés dans la table des employés.

  • Donc, écrire du code pour créer le SQL pour faire le scénario ci-dessus n'est pas si difficile, mais c'est un peu fastidieux et assez facile de se tromper.

  • En utilisant un ORM comme NHibernate, nous pouvons déclarer comment certaines classes doivent être mappées à des tables relationnelles et laisser l'ORM ou NHibernate s'occuper du travail désagréable de créer le SQL pour insérer, mettre à jour, supprimer, dans les données de requête dans notre table d'employés.

  • Cela nous permet de garder notre code concentré sur l'utilisation d'objets et de faire traduire automatiquement ces objets en tables relationnelles.

  • Donc, ce que fait un ORM, c'est qu'il nous évite d'avoir à mapper manuellement des objets sur des tables.