Individualschulungen
Entwicklung
Aktuelle Themen
.NET
JavaScript / TypeScript
Java
Programmiersprachen
Entwicklungswerkzeuge
Benutzeroberflächen / User Experience
Softwareengineering
KI in der Softwareentwicklung
Plattformen & Systeme
KI
Web & Cloud
Apps / Mobilplattformen
Datenbanken / Reporting / BI
Betriebssysteme & Virtualisierung
Microsoft Server-Produkte
Scripting
Windows & Office für Anwender
Soft Skills & IT-Recht
Das bieten nur wir
Umfangreicher Themenkatalog
Wählen Sie aus 1055 Themen
Weiterbildungsphilosophie
Individuelle Anpassung an Ihre Anforderungen
Didaktische Konzepte
Ganz nach Ihren Wünschen
Vorteile individueller Firmenseminare
Im Vergleich zu offenen Seminaren
Vor Ort oder online
Alles ist in Ihrem Hause oder online möglich
Top-Trainer
Die besten und renommiertesten Experten
Teilnehmerfeedback
Das sagen 9311 von insgesamt über 75000 Teilnehmern
Referenzkunden
Viele namhafte mittlere und große Referenzkunden
1055 Themen, die frei anpassbar und kombinierbar sind
Gesamter Themenkatalog →
Offene Schulungen
Online-Trainings
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI, Uno & Avalonia
Blazor
ASP.NET Core WebAPI
Entity Framework Core
Unit Testing / TDD
PowerShell
Alle Seminartermine
INFOTAGE
INFOTAG ".NET 12.0"
am 22.06.2027
INFOTAG "KI" 2027
am 15.09.2027
Das bieten nur wir
Renommierte Top-Trainer
Die besten und bekanntesten Experten schulen Sie!
Teilnehmerfeedback
Das sagen 9311 von insgesamt über 75000 Teilnehmern
Referenzkunden
Viele namhafte mittlere und große Referenzkunden
Nicht das passende Thema dabei? Stellen Sie Ihre individuelle Firmenschulung aus 1055 Modulen zusammen!
Individualschulungen →
Beratung, Support & Entwicklung
Alle unsere Leistungen
Beratung
Beratung zu vielen technischen und methodischen Themen
Coaching
Projektbegleitende Unterstützung
Softwareentwicklung
Wir entwickeln einzelne Module oder ganze Anwendungen für Sie
Technischer Support
Support für einzelne technische Fragen
Individualschulungen
1055 Themen, die frei anpassbar und kombinierbar sind
Offene Seminare
Ausgewählte Themen bieten wir auch als öffentliche Online-Schulungen an.
Beratungsthemen
Anwendungsarchitektur
Datenbankzugriff/Data Access
DevOps
Frontend, GUI, UX
IT-Infrastruktur
Leistung/Performance
Machbarkeit und Prototyping
Methodik, Prozesse, Teamarbeit
Migration und Versionsumstieg
Mobilanwendungen
Reviews und Qualitätssicherung
Sicherheit/Security
Verteilte Systeme und Services
Webtechniken
Werkzeugauswahl
Weitere Themen
Auch alle Schulungsthemen sind als Beratung möglich!
Das bieten nur wir
Renommierte Top-Berater
Durch Vorträge und Veröffentlichungen sehr bekannte Experten
Referenzkunden
Viele namhafte mittlere und große Referenzkunden
Referenzprojekte
Zahlreiche Referenzprojekte
Beratung vor Ort oder remote – flexibel nach Bedarf.
Zu den Beratungsthemen →
Wissen
Publikationen & Vorträge
Fachbücher
Fachartikel
Konferenzvorträge
Weblog
Spickzettel/Cheat Sheets
Lexikon/Glossar
Programmcodebibliothek
Fallbeispiele
Newsletter
Downloads
Themenportale
Übersicht
.NET/C#/Visual Studio
.NET 11.0
.NET 10.0
.NET 9.0
.NET 8.0
ASP.NET (Core)/Blazor
PowerShell
Versionshistorie
Konferenzen/Events
Community-/Leserportal
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Schulungen, Beratung, Support, Coaching, Softwareentwicklung
Unsere kommerziellen Leistungen →
Über uns
Unternehmen
Zahlen
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Unsere Top-Experten
Leitung & Kundenteam
Partner
Weitere Websites
Referenzen
Referenzkunden
Kundenaussagen
Referenzprojekte
Kontakt & Rechtliches
Kontakt
Impressum
Datenschutzerklärung, Haftung, Urheberrecht, Barrierefreiheit
Impressum, Datenschutz und Barrierefreiheit unter Kontakt & Rechtliches.
Rechtliches →
Erklärung des Begriffs: Objekt-Relationales Mapping (ORM)
Begriff
Objekt-Relationales Mapping
Abkürzung
ORM
Eintrag zuletzt aktualisiert am
24.05.2022
Zur Stichwortliste unseres Lexikons
Was ist
Objekt-Relationales Mapping
?
In der
Datenbank
welt sind relationale
Datenbank
en vorherrschend, in der Programmierwelt sind es Objekte. Zwischen den beiden Welten gibt es erhebliche semantische und syntaktische Unterschiede, die man unter dem Begriff "Impedance Mismatch" (zu Deutsch: Unverträglichkeit, vgl. [
dict.leo.org/englisch-deutsch/impedance%20mismatch
]) oder "Semantic Gap" (zu Deutsch: semantische Lücke) zusammenfasst.
Kern des objektorientierten Programmierens (
OOP
) ist die Arbeit mit Objekten als Instanzen von Klassen im Hauptspeicher. Die meisten Anwendungen haben dabei auch die Anforderung, in Objekten gespeicherte Daten dauerhaft zu speichern, insbesondere in
Datenbank
en. Grundsätzlich existieren objektorientierte
Datenbank
en (OODB), die direkt in der Lage sind, Objekte zu speichern. Aber objektorientierte
Datenbank
en haben bisher nur eine sehr geringe Verbreitung. Der vorherrschende Typus von
Datenbank
en sind relationale
Datenbank
en, die jedoch
Datenstruktur
en anders abbilden als Objektmodelle.
Um die Handhabung von relationalen
Datenbank
en in objektorientierten Systemen natürlicher zu gestalten, setzt die Software-Industrie seit Jahren auf O/R-Mapper (auch: OR-Mapper oder ORM geschrieben). O steht dabei für objektorientiert und R für relational. Diese Werkzeuge bilden demnach Konzepte aus der objektorientierten Welt, wie Klassen,
Attribut
e oder Beziehungen zwischen Klassen auf entsprechende Konstrukte der relationalen Welt, wie zum Beispiel Tabellen, Spalten und Fremdschlüssel, ab. Der Entwickler kann somit in der objektorientierten Welt verbleiben und den O/R-Mapper anweisen, bestimmte Objekte, welche in Form von Datensätzen in den Tabellen der relationalen
Datenbank
vorliegen, zu laden bzw. zu speichern. Wenig interessante und fehleranfällige Aufgaben, wie das manuelle Erstellen von INSERT-, UPDATE- oder DELETE-Anweisungen übernimmt hierbei auch der O/R-Mapper, was zu einer weiteren Entlastung des Entwicklers führt.
Zwei besonders hervorstechende Unterschiede zwischen Objektmodell und Relationenmodell sind N:M-Beziehungen und
Vererbung
. Während man in einem Objektmodell eine N:M-Beziehung zwischen Objekten durch eine wechselseitige
Objektmenge
abbilden kann, benötigt man in der relationalen
Datenbank
eine Zwischentabelle.
Vererbung
kennen relationale
Datenbank
en gar nicht. Hier gibt es verschiedene Möglichkeiten der Nachbildung, doch dazu später mehr.
ORM in der .NET-Welt
Wenn ein .NET-Entwickler aus einer
Datenbank
mit einem
DataReader
oder
DataSet
Daten einliest, dann betreibt er noch kein ORM.
DataReader
und
DataSet
sind zwar .NET-Objekte, aber diese verwalten nur Tabellenstrukturen.
DataReader
und
DataSet
sind aus der Sicht eines Objektmodells untypisierte, unspezifische
Container
. Erst wenn ein Entwickler spezifische Klassen für die in den Tabellen gespeicherten Strukturen definiert und die Inhalte aus
DataSet
oder
DataReader
in diese spezifischen
Datenstruktur
en umkopiert, betreibt er ORM. Solch ein "händisches ORM" ist für den Lesezugriff (gerade bei sehr breiten Tabellen) eine sehr aufwändige, mühselige und eintönige Programmierarbeit. Will man dann auch noch Änderungen in den Objekten wieder speichern, wird die Arbeit allerdings zur intellektuellen Herausforderung, denn man muss erkennen können, welche Objekte verändert wurden, da man sonst ständig alle Daten wieder speichert, was in Mehrbenutzerumgebungen ein Unding ist.
Während in der
Java
-Welt das ORM-Werkzeuge schon sehr lange zu den etablierten Techniken gehört, hat Microsoft diesen Trend lange verschlafen bzw. es nicht vermocht, ein geeignetes Produkt zur Marktreife zu führen. ADO.NET in
.NET 1.0
bis 3.5 enthielt keinen ORM, sondern beschränkt sich auf den direkten Datenzugriff und die Abbildung zwischen
XML
-Dokumenten und dem relationalen Modell.
Viele .NET-Entwickler haben sich daher daran gesetzt, diese Arbeit zu vereinfachen mit Hilfsbibliotheken und Werkzeugen. Dies war die Geburtsstunde einer großen Vielfalt von ORM-Werkzeuge für .NET. Dabei scheint es so, dass in dem geflügelten Wort, dass ein Mann in seinem Leben einen Baum gepflanzt, ein Kind gezeugt und ein Haus gebaut haben sollte, viele .NET-Entwickler die Punkte um "einen OR-Mapper geschrieben" ergänzt haben (wobei der Autor dieses Buchs sich davon nicht freisprechen kann, weil er auch keine OR-Mapper geschrieben hat). Anders ist die Vielfalt der ähnlichen Lösungen kaum erklärbar. Neben den öffentlich bekannten ORM-Werkzeugen für .NET findet man in den Unternehmen zahlreiche hauseigene Lösungen.
Bekannte öffentliche ORM für .NET von Drittanbietern (z.T.
Open Source
) sind:
nHibernate
Genome
LLBLGenPro
Wilson
Subsonic
OBJ.NET
.NET Data Objects (NDO)
Dapper
PetaPoco
Massive
Developer Express XPO
Telerik
Data Access (alias
Open Access
) * 2016 eingestellt
Neben den aktiven Entwicklern von ORM-Werkzeugen für .NET und den passiven Nutzern gibt eine noch größere Fraktion von Entwicklern, die ORM bisher nicht einsetzen. Meist herrscht Unwissenheit, die auch nicht aufgearbeitet wird, denn es herrscht das Motto "Wenn Microsoft es nicht macht, ist es auch nicht wichtig!".
Mit
LINQ-to-SQL
und dem
ADO.NET Entity Framework
sowie Entity Framework bietet Microsoft selbst aber inzwischen sogar drei verschiedene Produkte an. Microsoft hat aber inzwischen verkündet, dass die Weiterentwicklungsbemühungen sich allein auf das
Entity Framework Core
konzentrieren.
Querverweise zu anderen Begriffen im Lexikon
ADO.NET Entity Framework (EF)
Entity Framework Core (EFC)
Datenstruktur
Open Source
Open Access
LINQ-to-SQL (LTS)
Objektmenge
DataReader
Container
Vererbung
Datenbank (DB)
Attribut
DataSet
Telerik
Java
.NET Framework 1.0 (.NET 1.0)
Extensible Markup Language (XML)
Objektorientiertes Programmieren (OOP)
Beratung & Support
.NET/C# und Java/JEE im Vergleich: Welche Softwareentwicklungsplattform ist besser?
.NET-Performanceprobleme / Leistungsprobleme
ASP.NET (Core)-Leistung / ASP.NET (Core)-Performance
Cross-Plattform-Entwicklung / Cross-Plattform-Tools
Einsatz der Microsoft Azure-Cloud-Plattform als Alternative zu eigenen Servern und klassischem Hosting
Entity Framework (Core)-Leistung / Entity Framework (Core)--Performance: Optimierung von Entity Framework-Datenzugriffen
Microsoft SQL Server-Performanceprobleme / Datenbankoptimierung
Plattformunabhängige Anwendungen entwickeln: Flutter vs. .NET MAUI vs. React vs. Kotlin vs. JavaScript/TypeScriptsowie JavaScript/TypeScript in Verbindung mit Electron, PhoneGap, Tauri, NW.js u.a.
Umstellung/Migration/Umstieg von Windows Forms-Anwendungen von .NET Framework auf das moderne .NET
WCF-Leistung / WCF-Performance: Optimierung der Windows Communication Foundation (WCF)
Webanwendungen optimieren und skalieren (Website-Performance verbessern)
WPF-Leistung / WPF-Performance: Optimierung der Windows Presentation Foundation (WPF)
Barrierefreiheit nach European Accessibility Act (EAA)
Entscheidung für ein Webframework: Angular versus React versus Vue.js versus Svelte
Modernisierung von Windows-Anwendungen
.NET Framework versus .NET
.NET-Webservices mit WebAPI, SignalR, gRPC oder WCF/CoreWCF?
Benutzerschnittstellentechnik auswählen (UI-/Frontend-Techniken)
Berichte (Reporting, Dokumentengenerierung): SAP Crystal Reports versus List&Label versus TextControl versus Microsoft Reports/SQL Server Reporting Services
Best Practices bei der Softwareentwicklung mit .NET, ASP.NET (Core), WPF (Core), WCF/CoreWCF, Entity Framework (Core) u.a.
Best Practices für moderne Webanwendungen mit HTML5, CSS3 und JavaScript
Design und Usability ("User Experience - UX")
Design und Usability ("User Experience - UX") von modernen Webanwendungen
Design und Usability ("User Experience - UX") von XAML-Anwendungen (WPF, WinUI, MAUI, Avalonia, Uno)
Einführung von Testautomatisierung, Unit Testing und Test Driven Development (TDD) in Ihrer Softwareentwicklung
Einrichtung und Absicherung von Terminal Servern/Remote Desktop Services/Virtual Deskops/Virtual Apps
Entity Framework versus Entity Framework Core
Machbarkeitsstudien
Machen Sie Ihr Unternehmen fit für Heimarbeit/Home Office
Review Ihres Softwareentwicklungsprozesses
Umstellung/Migration/Umstieg von .NET Framework auf das moderne .NET
Umstellung/Migration/Umstieg von ASP.NET-Anwendungen von .NET Framework auf ASP.NET Core
Umstieg von Desktop-Anwendungen auf moderne Webanwendungen
Unit Testing und Test Driven Development: Pro und Contra
Anfrage für Beratung/Consulting zu OBJEKT-RELATIONALES MAPPING ORM
Gesamter Beratungsthemenkatalog
Technischer Support zum Thema OBJEKT-RELATIONALES MAPPING ORM
Schulungen
Performanceanalyse und Performancesteigerung (Tuning/Leistungstipps) von Webanwendungen und JavaScript
Uno Platform - Cross-Plattform-GUI-Anwendungen mit .NET und XAML
Plattformneutrale Hybrid-Anwendungen mit HTML5 und JavaScript (oder TypeScript) mit Miletus
Terraform
Umstieg auf .NET Multi-Platform App UI (MAUI) (Umstellung/Migration von Xamarin Forms-Apps auf .NET MAUI)
.NET Akademie: .NET MAUI: .NET-/C#-Cross-Plattform-Entwicklung für Android, iOS (iPhone, iPad) und Windows (3-Tages-Agenda des öffentlichen Seminars)
.NET Multi-Platform App UI (MAUI)
.NET-Performance (Leistungsprobleme/Leistungsengpässe)
ADO.NET Entity Framework (EF) - Objekt-Relationales Mapping
ADO.NET Entity Framework (EF) / Entity Framework Core (EF Core) - Performance-Tuning / Leistungsoptimierung
Apache Cordova - Plattformübergreifende mobile Anwendungen für Android, Apple iOS, RIM BlackBerry, Windows
ASP.NET Webforms (System.Web) - Aufbauwissen
ASP.NET Webforms (System.Web) - Basiswissen
ASP.NET Webforms (System.Web) - Datenzugriff
ASP.NET Webforms (System.Web) - Profiwissen
ASP.NET Webforms im Überblick - Weboberflächen mit .NET
ASP.NET Webforms-Crashkurs (3 Tage)
Avalonia - Cross-Plattform-GUI-Anwendungen mit .NET und XAML
Cross-Plattform-Entwicklung mit Cross-Plattform-Tools im Vergleich
Datenbankbasierte Webanwendungen mit ASP.NET Webforms
Entity Framework Core 10.0/11.0 (EF Core 10.0/11.0): objektrelationales Mapping (ORM) für .NET 10.0/11.0 (komplettes Wissen)
Erstellung von Web-Anwendungen mit ASP.NET Webforms
Flutter: Cross-Plattform-Entwicklung für iOS (iPhone, iPad), Android, Web, Desktop und Embedded Devices
Formatierung und Reporting mit der PowerShell
GUI-Programmierung mit der Rich Client Platform (RCP)
High-Performance Java
Hybride Anwendungen mit .NET und CefSharp (Einbindungen von Webanwendungen in WPF- und Windows Forms-Desktopanwendungen)
Infragistics Ignite UI - Infragistics jQuery Controls (vormals NetAdvantage for jQuery)
Internet Information Server/Internet Information Services (IIS)
JavaScript und moderne Webanwendungen/Cross-Platform-Anwendungen für Entscheider
Konfigurationsinformationen in .NET und .NET Core
Konzepte und Softwarearchitektur moderner Web-, Mobil- und Cross-Platform-Anwendungen
Microsoft Azure-Cloud im Überblick - Microsofts Cloud Computing-Plattform
Microsoft Power Platform - Aufbauwissen (Deep Dive)
Microsoft Power Platform - Basiswissen
Microsoft Power Platform - Development
Microsoft SQL Server (MSSQL) - Leistungsdiagnose und Leistungsoptimierung (Performance-Analyse und -Tuning)
MySQL oder MariaDB: High-Performance/Leistungsoptimierung
NativeScript (Cross-Plattform-Entwicklung für iOS und Android)
Neuerungen im Internet Information Server/Internet Information Services 7.0/7.5/8.0/8.5/10.0 (IIS 7.0/7.5/8.0/8.5/10.0)
Neuerungen in .NET Core 3.0/3.1 gegenüber Version 2.x (inkl. ASP.NET Core, Entity Framework Core, WPF und Windows Forms)
Neuerungen in Windows Forms 2.0
NHibernate - objektrelationales Mapping (ORM) mit .NET
Objekt-Relationales Mapping (ORM) mit .NET
Offlinefähige und installierbare Cross-Plattform-Lösungen mit Angular
Oracle - Performance Tuning
Performanceanalyse und Performancesteigerung (Tuning/Leistungstipps) von WPF-Anwendungen
Plattformneutrale Hybrid-Anwendungen mit HTML5 und JavaScript (oder TypeScript) mit Electron (Hosted/Hybrid Web Apps)
Power Platform mit Microsoft Dynamics 365
Umstieg auf Windows Forms Core 10.0/11.0 in .NET 10.0/11.0 (Umstellung/Migration von Windows Forms-Anwendungen von .NET Framework auf .NET 10.0/11.0)
Anfrage für eine individuelle Schulung zum Thema OBJEKT-RELATIONALES MAPPING ORM
Gesamter Schulungsthemenkatalog
Fachbücher
.NET 11.0 Update: Die Neuerungen in .NET 11.0 gegenüber .NET 10.0
SQL Server Performance & Troubleshooting: Reale Probleme, echte Lösungen — vom Hardware-Fundament bis zum Ausführungsplan
Blazor 10.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 10.0, C# 14.0 und Visual Studio 2026
Moderne Datenzugriffslösungen mit Entity Framework Core 10.0
.NET 10.0 Update: Die Neuerungen in .NET 10.0 gegenüber .NET 9.0
Excel: Zahlen rechnen Formeln: Formeln, Berechnungen und Verknüpfungen in Excel
Blazor 9.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 9.0, C# 13.0 und Visual Studio 2022
Cross-Plattform-Apps mit .NET MAUI entwickeln
Moderne Datenzugriffslösungen mit Entity Framework Core 9.0
.NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
.NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
Daten aufbereiten mit Power Query, Formeln und Assistenten in Excel
Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
Cross-Plattform-Apps mit .NET MAUI entwickeln
Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
Moderne Datenzugriffslösungen mit Entity Framework Core 6.0
Blazor 6.0: Blazor WebAssembly, Blazor Server und Blazor Desktop
Cross-Plattform-Apps mit Xamarin.Forms entwickeln
Moderne Datenzugriffslösungen mit Entity Framework Core 5.0
Cross-Platform-Entwicklung mit Tabris.js
Moderne Webanwendungen für .NET-Entwickler: Server-Anwendungen, Web APIs, SPAs & HTML-Cross-Platform-Anwendungen mit ASP.NET, ASP.NET Core, JavaScript
Cordova
SQL Server 2014 für Professionals: Hochverfügbarkeit, Cloud-Szenarien, Backup/Restore, Monitoring & Performance
Cross-Plattform-Entwicklung mit HTML und JavaScript
Die OSGI Service Platform-Eine Einführung mit Eclipse Equinox
Web Forms - Webprogrammierung mit ASP.NET
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr