IRONSOFTWAREHOME
ENTWICKLER-UPDATES

NHibernate C# (Funktionsweise für Entwickler)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 28. Juli 2025

NHibernate C# (Wie es für Entwickler funktioniert): Abbildung 1 - Startseite von NHibernate C#

NHibernate ist ein leistungsstarkes Object Relational Mapping (ORM) Framework, das für die Verwendung mit dem .NET-Framework entwickelt wurde. Es bietet Entwicklern eine effiziente Möglichkeit, die Lücke zwischen der objektorientierten Welt der .NET-Anwendungen und der relationalen Welt von Datenbanken zu schließen. Durch die Verwendung von NHibernate können Sie die Menge an Boilerplate-Code, die für die Implementierung von Datenzugriffsschichten erforderlich ist, erheblich reduzieren, wodurch Ihre .NET-Anwendungen sauberer und wartungsfreundlicher werden.

Die Rolle von ORM bei der Vereinfachung von Datenbankinteraktionen

ORM-Frameworks wie NHibernate vereinfachen die Interaktionen mit relationalen Datenbanken, indem sie es Entwicklern ermöglichen, mit Daten in Form von Objekten und deren Eigenschaften anstelle von SQL-Anweisungen zu arbeiten. Diese Abstraktion hilft Entwicklern, sich mehr auf die Geschäftslogik ihrer Anwendungen und weniger auf die zugrunde liegenden SQL-Befehle und das Datenbankschema zu konzentrieren. Zum Beispiel übernimmt NHibernate die gesamte SQL-Generierung und -Ausführung, sodass Operationen wie Einfügungen, Löschungen und Aktualisierungen durch einfache Objektumwandlungen und Objektmanipulationen durchgeführt werden können.

Einrichten von NHibernate in einem .NET-Projekt

Um mit NHibernate in Ihrem .NET-Projekt zu beginnen, ist der erste Schritt die Installation des NHibernate-Pakets. Dies kann leicht über den NuGet-Paketmanager von Visual Studio mit dem folgenden Befehl erledigt werden:

PM > Install-Package NHibernate

NHibernate C# (Wie es für Entwickler funktioniert): Abbildung 2 - Öffnen Sie eine Befehlszeilenkonsole und geben Sie den obigen Befehl ein, um NHibernate zu installieren

Konfiguration von NHibernate mit einer XML-Konfigurationsdatei

Sobald NHibernate installiert ist, besteht der nächste Schritt darin, es zu konfigurieren. Dies beinhaltet das Erstellen einer Hibernate-Mapping-Datei, die die Einstellungen Ihres Datenbankservers und die Mapping-Details Ihrer Objekte zu den Datenbanktabellen beschreibt. Die Haupt-XML-Datei, normalerweise hibernate.cfg.xml genannt, enthält Einstellungen wie die Datenbankverbindungszeichenfolge, den Dialekt und andere datenbankspezifische Einstellungen.

<?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

Verstehen der Kernkomponenten von NHibernate

Eine der Schlüsselkomponenten in NHibernate ist die Session Factory, die nach dem Factory-Designmuster entworfen wurde. Diese Komponente erstellt Sitzungsobjekte, die die Verbindung zur Datenbank verwalten und die Transaktionsoperationen halten. Die Session Factory ist kostspielig zu erstellen, daher wird sie in der Regel nur einmal pro Anwendungslebensdauer erstellt, was sie zu einem entscheidenden Element für Leistungsoptimierung macht.

Schlüsselklassen und -methoden in NHibernate

NHibernate dreht sich um mehrere wesentliche Klassen und Methoden. Zum Beispiel spielt das ISession-Interface eine grundlegende Rolle in NHibernate, indem es die Erstellung von Datenabfrage- und Manipulationssitzungen erleichtert. Methoden wie OpenSession helfen Entwicklern, Transaktionen zu starten, SQL-Befehle auszuführen und Abfragen an die Datenbank zu stellen, entweder mit SQL-Anweisungen oder mit NHibernates eigenem HQL (Hibernate Query Language).

Mapping von Entitäten auf Datenbanktabellen mit NHibernate

In NHibernate erfolgt die Entity-Zuordnung durch Mapping-Dateien, die normalerweise in XML geschrieben werden. Diese Dateien, oft nach der Entity-Klasse benannt (z.B. Employee.hbm.xml), definieren, wie die Eigenschaften einer Entity zu den Spalten einer Datenbanktabelle zugeordnet werden. Eine typische Mapping-Datei enthält den Klassennamen, den Tabellennamen und Details zu jeder Eigenschaft, einschließlich des Primärschlüssels, des Spaltennamens und des Datentyps.

Detaillierter Blick auf die in Mapping-Dateien verwendeten Eigenschaften und Attribute

In diesen Mapping-Dateien können Sie verschiedene Attribute für jede Eigenschaft angeben, wie zum Beispiel Nicht-Null-Beschränkungen oder eindeutige Beschränkungen. NHibernate erlaubt auch komplexe Zuordnungen wie Eins-zu-Viele- und Viele-zu-Eins-Beziehungen und bietet ein leistungsstarkes Werkzeugset zur Darstellung relationaler Datenstrukturen innerhalb eines objektorientierten Frameworks.

Ausführen von SQL-Befehlen und -Transaktionen in NHibernate

NHibernate vereinfacht CRUD-Operationen (Create, Read, Update, Delete), indem es die zugrunde liegenden SQL-Befehle abstrahiert. Entwickler können diese Vorgänge durchführen, ohne expliziten SQL-Code zu schreiben, sondern verwenden stattdessen die vom ISession-Interface bereitgestellten Methoden. Um beispielsweise eine neue Entität zur Datenbank hinzuzufügen, erstellen Sie einfach eine neue Instanz des Objekts, setzen dessen Eigenschaften und verwenden die Save-Methode des ISession.

Verwaltung von Transaktionen mit ITransaction

In NHibernate werden Transaktionen über das ITransaction-Interface verwaltet, das die Datenintegrität und Konsistenz sicherstellt. Mit der BeginTransaction-Methode von ISession können Entwickler sicherstellen, dass alle Vorgänge erfolgreich abgeschlossen werden, bevor die Daten in die Datenbank übernommen werden, oder zurückrollen, wenn etwas schiefgeht, um so die Stabilität Ihrer Daten zu gewährleisten.

Komplettes Code-Beispiel

Dieses Beispiel umfasst die Konfiguration der NHibernate-Konfiguration und der Mapping-Dateien und zeigt, wie man Create-, Read-, Update- und Delete-Operationen mit NHibernate durchführt.

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");
        }
    }
}

Merkmale der Datenbank-Portabilität und Interoperabilität

NHibernate ist mit Datenbankportabilität konzipiert. Dank seiner Dialektkonfiguration kann NHibernate sich mit minimalen Änderungen des Code-Designs an die meisten SQL-Datenbanken anpassen. Das bedeutet, dass Sie von einem SQL-Server zu MySQL oder Oracle wechseln können, ohne Ihre Datenzugriffsschicht neu schreiben zu müssen.

Anpassung von NHibernate für verschiedene Datenbanksysteme wie SQL Server

Die XML-Konfigurationsdateien in NHibernate erlauben es Entwicklern, den SQL-Dialekt anzugeben, der spezifisch für ihr Datenbanksystem ist. Das macht NHibernate zu einer flexiblen Lösung, die leicht angepasst werden kann, um mit praktisch jeder relationalen Datenbank zu arbeiten, die SQL unterstützt, und stellt sicher, dass Ihre Anwendung auf verschiedenen Datenbanksystemen portabel ist.

NHibernate mit IronPDF verwenden

NHibernate C# (Wie es für Entwickler funktioniert): Abbildung 3 - Startseite von IronPDF

Die Integration von NHibernate mit IronPDF ist eine leistungsstarke Kombination, die Ihre .NET-Anwendungen verbessern kann. Es ermöglicht Ihnen, Datenbankoperationen mit NHibernate zu verwalten, während Sie IronPDF verwenden, um PDF-Dokumente zu generieren aus Ihren Daten. Betrachten Sie ein Szenario, in dem Ihre Anwendung benutzerspezifische Dokumente bereitstellen muss, wie z.B. Mitarbeiterberichte, die im PDF-Format generiert und heruntergeladen werden müssen. NHibernate kann effizient die Datenabrufprozesse aus Ihrer Datenbank verwalten, während IronPDF in der Lage ist, diese Daten in gut formatierte PDF-Dateien umzuwandeln.

IronPDF installieren

Stellen Sie sicher, dass IronPDF Ihrem Projekt hinzugefügt ist. Sie können es über den NuGet-Paketmanager einbeziehen, indem Sie das IronPDF-Paket installieren.

PM > Install-Package IronPdf

NHibernate C# (Wie es für Entwickler funktioniert): Abbildung 4 - IronPDF über den NuGet-Paket-Manager installieren

Codebeispiel

Lassen Sie uns tiefer darauf eingehen, wie Sie dies in Ihrer Anwendung umsetzen können. Nachdem Sie NHibernate eingerichtet haben und die benötigten Daten aus der Datenbank, wie z.B. Mitarbeiterdetails, abgerufen haben, bereiten Sie eine HTML-Vorlage vor, die darstellt, wie das PDF-Dokument aussehen soll. Diese HTML-Vorlage kann dynamisch mit den von NHibernate abgerufenen Daten gefüllt werden. Zum Beispiel, wenn Sie einen Bericht für einen Mitarbeiter generieren, würde die Vorlage Platzhalter für den Namen, die ID und andere relevante Details des Mitarbeiters enthalten.

Hier ist ein detailliertes Codebeispiel, das zeigt, wie man Daten mit NHibernate abruft und mit IronPDF in ein PDF umwandelt:

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# (Wie es für Entwickler funktioniert): Abbildung 5 - Beispielausgabe des obigen Codes

In diesem Code ist OpenSession() eine Methode, die eine NHibernate-Sitzung initialisiert, die zum Abrufen der Mitarbeiterdaten verwendet wird. Die ChromePdfRenderer-Klasse von IronPDF übernimmt dann die mit den abgerufenen Daten gefüllte HTML-Vorlage und rendert sie als PDF. Dieses PDF wird lokal gespeichert, könnte aber auch direkt über eine Webschnittstelle an einen Benutzer gestreamt werden.

Abschluss

In diesem Tutorial haben wir untersucht, wie NHibernate Datenbankoperationen in .NET-Anwendungen vereinfacht und wie seine Integration mit IronPDF die Funktionalität verbessert, indem sie die Erstellung dynamischer PDF-Dokumente ermöglicht. NHibernate bietet robuste Datenmanagement-Tools, während IronPDF eine bequeme Möglichkeit bietet, professionelle PDFs aus mit Daten gefüllten HTML-Vorlagen zu erstellen.

IronPDF ist für eine kostenlose Testversion verfügbar, und Lizenzen beginnen bei einer kostengünstigen Lösung für die Integration leistungsstarker PDF-Generierung in Ihre Anwendungen. Zusammen bieten diese Tools eine umfassende Lösung für Datenmanagement und Dokumenterstellung, ideal für sowohl unternehmensweite als auch kleinere Projekte.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO Cameron Rimington in ein Unternehmen mit mehr als 50 Mitarbeitern verwandelt, das die NASA, Tesla und globale Regierungsbehörden beliefert.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

OR
bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach 'IronPDF'
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows-Installer hier herunter.

  1. Laden Sie IronPDF herunter und entpacken Sie es in ein Verzeichnis wie ~/Libs innerhalb Ihres Lösungsverzeichnisses
  2. Im Visual Studio-Projektmappen-Explorer klicken Sie mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronPDF.dll"

Lizenzen ab 749 $