IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

NHibernate C# (Comment ça fonctionne pour les développeurs)

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 28 juillet 2025

NHibernate C# (Comment cela fonctionne pour les développeurs) : Figure 1 - Page d'accueil de NHibernate C#

NHibernate est un puissant framework de mapping objet-relationnel (ORM) conçu pour être utilisé avec le framework .NET. Il offre aux développeurs un moyen efficace de combler le fossé entre le monde orienté objet des applications .NET et le monde relationnel des bases de données. En utilisant NHibernate, vous pouvez réduire considérablement la quantité de code standard requise pour implémenter des couches d'accès aux données, rendant vos applications .NET plus propres et plus faciles à maintenir.

Le rôle de l'ORM dans la simplification des interactions avec les bases de données

Les frameworks ORM comme NHibernate simplifient les interactions avec les bases de données relationnelles en permettant aux développeurs de travailler avec des données en termes d'objets et de leurs propriétés plutôt qu'en utilisant des instructions SQL. Cette abstraction aide les développeurs à se concentrer davantage sur la logique métier de leurs applications et moins sur les commandes SQL sous-jacentes et le schéma de la base de données. Par exemple, NHibernate gère toute la génération et l'exécution des SQL, permettant des opérations telles que les insertions, les suppressions et les mises à jour à effectuer par une simple conversion d'objets et manipulation d'objets.

Configuration de NHibernate dans un projet .NET

Pour commencer avec NHibernate dans votre projet .NET, la première étape est d'installer le package NHibernate. Cela peut être fait facilement via le gestionnaire de packages NuGet de Visual Studio en utilisant la commande suivante :

PM > Install-Package NHibernate

NHibernate C# (Comment cela fonctionne pour les développeurs) : Figure 2 - Ouvrez une console de ligne de commande et entrez la commande ci-dessus pour installer NHibernate

Configurer NHibernate avec un fichier de configuration XML

Une fois NHibernate installé, l'étape suivante consiste à le configurer. Cela implique de créer un fichier de mappage Hibernate qui détaille vos paramètres de serveur de base de données et les détails de mappage de vos objets vers les tables de la base de données. Le fichier XML principal, généralement nommé hibernate.cfg.xml, inclut des paramètres tels que la chaîne de connexion de la base de données, le dialecte et d'autres paramètres spécifiques à la base de données.

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">
      NHibernate.Connection.DriverConnectionProvider
    </property>
    <property name="connection.driver_class">
      NHibernate.Driver.SqlClientDriver
    </property>
    <property name="connection.connection_string">
      Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
    </property>
    <property name="dialect">
      NHibernate.Dialect.MsSql2012Dialect
    </property>
    <property name="show_sql">true</property>
    <mapping resource="Employee.hbm.xml"/>
  </session-factory>
</hibernate-configuration>
XML

Comprendre les composants principaux de NHibernate

L'un des composants clés de NHibernate est la Session Factory, qui est conçue en utilisant le patron de conception de fabrique. Ce composant crée des objets Session qui gèrent la connexion à la base de données et contiennent les opérations transactionnelles. La création de la Session Factory est coûteuse, elle est donc généralement faite une fois par durée de vie de l'application, en faisant un élément crucial pour l'optimisation des performances.

Classes et méthodes clés dans NHibernate

NHibernate tourne autour de plusieurs classes et méthodes essentielles. Par exemple, l'interface ISession joue un rôle fondamental dans NHibernate, facilitant la création de sessions de requête et de manipulation de données. Les méthodes comme OpenSession aident les développeurs à démarrer des transactions, exécuter des commandes SQL et interroger la base de données en utilisant soit des instructions SQL soit le propre HQL de NHibernate (Hibernate Query Language).

Mapper les entités aux tables de base de données avec NHibernate

Le mappage d'entité dans NHibernate est accompli grâce à des fichiers de mappage, généralement écrits en XML. Ces fichiers, souvent nommés d'après la classe d'entité (par exemple, Employee.hbm.xml), définissent comment les propriétés d'une entité se mappent aux colonnes d'une table de base de données. Un fichier de mappage typique inclut le nom de la classe, le nom de la table, et les détails sur chaque propriété, y compris la clé primaire, le nom de la colonne, et le type de données.

Examen détaillé des propriétés et attributs utilisés dans les fichiers de mappage

Dans ces fichiers de mappage, vous pouvez spécifier divers attributs pour chaque propriété, tels que des contraintes de non-nullité ou des contraintes uniques. NHibernate permet aussi des mappages complexes comme les relations un-à-plusieurs et plusieurs-à-un, offrant un ensemble d'outils puissants pour représenter les structures de données relationnelles dans un cadre orienté objet.

Exécuter des commandes SQL et des transactions dans NHibernate

NHibernate simplifie les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) en abstraisant les commandes SQL sous-jacentes. Les développeurs peuvent effectuer ces opérations sans écrire de code SQL explicite, en utilisant plutôt les méthodes fournies par l'interface ISession. Par exemple, pour ajouter une nouvelle entité à la base de données, vous créez simplement une nouvelle instance de l'objet, définissez ses propriétés et utilisez la méthode Save de ISession.

Gérer les transactions avec ITransaction

Les transactions dans NHibernate sont gérées via l'interface ITransaction, qui assure l'intégrité et la cohérence des données. En utilisant la méthode BeginTransaction de ISession, les développeurs peuvent s'assurer que toutes les opérations sont complétées avec succès avant de valider les données dans la base de données, ou revenir en arrière si quelque chose ne va pas, maintenant ainsi la stabilité de vos données.

Exemple complet de code

cet exemple comprend la configuration de la configuration NHibernate et des fichiers de mappage et démontre comment effectuer des opérations de création, de lecture, de mise à jour et de suppression en utilisant NHibernate.

using NHibernate;
using NHibernate.Cfg;
using System;

// Define the Employee class with virtual properties
public class Employee
{
    public virtual int Id { get; set; }
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
}

class Program
{
    private static ISessionFactory sessionFactory;

    static void Main()
    {
        // Initialize the SessionFactory using NHibernate configuration
        sessionFactory = new Configuration().Configure().BuildSessionFactory();

        // Perform database operations
        CreateEmployee();
        ReadEmployee(1);
        UpdateEmployee(1, "UpdatedName");
        DeleteEmployee(1);
    }

    static void CreateEmployee()
    {
        using (var session = sessionFactory.OpenSession())
        using (var transaction = session.BeginTransaction())
        {
            var newEmployee = new Employee
            {
                FirstName = "Iron",
                LastName = "Software"
            };
            session.Save(newEmployee); // Save the new Employee object to the database
            transaction.Commit(); // Commit the transaction to finalize the insertion
            Console.WriteLine("Employee created: " + newEmployee.Id);
        }
    }

    static void ReadEmployee(int id)
    {
        using (var session = sessionFactory.OpenSession())
        {
            // Retrieve the Employee object by its Id
            var employee = session.Get<Employee>(id);
            Console.WriteLine("Read Employee: " + employee.FirstName + " " + employee.LastName);
        }
    }

    static void UpdateEmployee(int id, string newFirstName)
    {
        using (var session = sessionFactory.OpenSession())
        using (var transaction = session.BeginTransaction())
        {
            // Get the Employee object by its Id
            var employee = session.Get<Employee>(id);
            employee.FirstName = newFirstName; // Update the employee's first name
            session.Update(employee); // Update the Employee object in the database
            transaction.Commit(); // Commit the transaction to save changes
            Console.WriteLine("Employee updated: " + employee.FirstName);
        }
    }

    static void DeleteEmployee(int id)
    {
        using (var session = sessionFactory.OpenSession())
        using (var transaction = session.BeginTransaction())
        {
            // Retrieve the Employee object to be deleted
            var employee = session.Get<Employee>(id);
            session.Delete(employee); // Delete the Employee from the database
            transaction.Commit(); // Commit the transaction to finalize the deletion
            Console.WriteLine("Employee deleted");
        }
    }
}

Portabilité et fonctionnalités d'interopérabilité des bases de données

NHibernate est conçu avec la portabilité de la base de données en tête. Grâce à sa configuration dialecte, NHibernate peut s'adapter à la plupart des bases de données SQL avec des changements minimes dans la base de code. Cela signifie que vous pouvez passer d'un serveur SQL à MySQL ou Oracle sans avoir à réécrire votre couche d'accès aux données.

Adapter NHibernate pour différents systèmes de bases de données comme SQL Server

Les fichiers de configuration XML dans NHibernate permettent aux développeurs de spécifier le dialecte SQL spécifique à leur système de base de données. Cela fait de NHibernate une solution flexible qui peut être facilement adaptée pour fonctionner avec pratiquement toute base de données relationnelle qui supporte SQL, garantissant que votre application soit portable à travers différents systèmes de bases de données.

Utiliser NHibernate avec IronPDF

NHibernate C# (Comment cela fonctionne pour les développeurs) : Figure 3 - Page d'accueil d'IronPDF

Intégrer NHibernate avec IronPDF est une combinaison puissante qui peut améliorer vos applications .NET. Cela vous permet de gérer les opérations de base de données avec NHibernate tout avec IronPDF pour générer des documents PDF à partir de vos données. Considérez un scénario où votre application doit fournir des documents spécifiques à un utilisateur, tels que des rapports d'employés, qui doivent être générés et téléchargés au format PDF. NHibernate peut gérer efficacement les processus de récupération des données de votre base de données, tandis qu'IronPDF peut convertir ces données en fichiers PDF bien formatés.

Installer IronPDF

Tout d'abord, assurez-vous que IronPDF est ajouté à votre projet. Vous pouvez l'inclure via le gestionnaire de packages NuGet en installant le package IronPDF.

PM > Install-Package IronPdf

NHibernate C# (Comment cela fonctionne pour les développeurs) : Figure 4 - Installer IronPDF via le gestionnaire de packages NuGet

Exemple de Code

Approfondissons la mise en œuvre de cela dans votre application. Après avoir configuré NHibernate et récupéré les données nécessaires à partir de la base de données, telles que les détails des employés, vous préparerez un modèle HTML représentant l'apparence que devrait avoir le document PDF. Ce modèle HTML peut être rempli dynamiquement avec les données obtenues de NHibernate. Par exemple, si vous générez un rapport pour un employé, le modèle inclurait des espaces réservés pour le nom de l'employé, son ID, et d'autres détails pertinents.

Voici un exemple de code détaillé qui démontre comment extraire des données en utilisant NHibernate et les convertir en PDF à l'aide d'IronPDF :

using IronPdf;
using NHibernate;

static void CreateEmployeeReport(int employeeId)
{
    // Open a session to interact with the database
    using (var session = OpenSession())
    {
        // Retrieve the employee object based on the provided ID
        var employee = session.Get<Employee>(employeeId);

        // Create an instance of the ChromePdfRenderer class from IronPDF
        var renderer = new ChromePdfRenderer();

        // Create the HTML content for the PDF, embedding employee data into the HTML
        var htmlTemplate = $@"
            <html>
            <head>
                <title>Employee Report</title>
            </head>
            <body>
                <h1>Employee Details</h1>
                <p>Name: {employee.FirstName} {employee.LastName}</p>
                <p>ID: {employee.Id}</p>
            </body>
            </html>";

        // Render the HTML string as a PDF document
        var pdf = renderer.RenderHtmlAsPdf(htmlTemplate);

        // Save the generated PDF to a file
        pdf.SaveAs("EmployeeReport.pdf");
    }
}

NHibernate C# (Comment cela fonctionne pour les développeurs) : Figure 5 - Exemple de sortie du code ci-dessus

Dans ce code, OpenSession() est une méthode qui initialise une session NHibernate, utilisée pour récupérer les données des employés. La classe ChromePdfRenderer d'IronPDF prend alors le modèle HTML rempli avec les données récupérées et le rend en PDF. Ce PDF est enregistré localement, mais pourrait également être diffusé directement à un utilisateur via une interface Web.

Conclusion

Dans ce tutoriel, nous avons exploré comment NHibernate simplifie les opérations de base de données dans les applications .NET et comment son intégration avec IronPDF améliore la fonctionnalité en permettant la génération de documents PDF dynamiques. NHibernate offre des outils de gestion des données robustes, tandis qu'IronPDF offre un moyen pratique de créer des PDF de qualité professionnelle à partir de modèles HTML remplis avec des données.

IronPDF est disponible pour un essai gratuit, et les licences commencent à une solution économique pour intégrer une puissante génération de PDF dans vos applications. Ensemble, ces outils offrent une solution complète pour gérer les données et produire des documents, idéale tant pour les projets de niveau entreprise que pour ceux de plus petite envergure.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $