Entity Framework 6Entity Framework 6

Entity Framework 6 (EF6) ist ein bewährtes Framework für objektrelationale Abbildung (Object-Relational Mapping, ORM) für .NET, dessen Features im Laufe der Zeit immer weiter optimiert und stabilisiert wurden.Entity Framework 6 (EF6) is a tried and tested object-relational mapper (O/RM) for .NET with many years of feature development and stabilization.

Als ORM-Framework senkt EF6 die Inkongruenz zwischen dem relationalen und dem objektorientierten Bereich. Dadurch können Entwickler Anwendungen schreiben, die mit Daten interagieren, die in relationalen Datenbanken mit stark typisierten .NET-Objekten gespeichert wurden, die die Anwendungsdomäne darstellen. Außerdem ist es durch EF6 nicht mehr erforderlich, dass ein großer Teil der Daten auf Grundlagencode zugreifen muss, den sie normalerweise schreiben müssen.As an O/RM, EF6 reduces the impedance mismatch between the relational and object-oriented worlds, enabling developers to write applications that interact with data stored in relational databases using strongly-typed .NET objects that represent the application's domain, and eliminating the need for a large portion of the data access "plumbing" code that they usually need to write.

EF6 implementiert viele beliebte ORM-Features:EF6 implements many popular O/RM features:

  • Zuordnung von POCO-Entitätsklassen, die nicht von EF-Typen abhängenMapping of POCO entity classes which do not depend on any EF types
  • Automatische ÄnderungsnachverfolgungAutomatic change tracking
  • Identitätsauflösung und ArbeitseinheitIdentity resolution and Unit of Work
  • Eager und Lazy Loading sowie explizites LadenEager, lazy and explicit loading
  • Übersetzung stark typisierter Abfragen mit LINQ (Language Integrated Query)Translation of strongly-typed queries using LINQ (Language INtegrated Query)
  • Umfangreiche Mappingfunktionen, u.a. Unterstützung für:Rich mapping capabilities, including support for:
    • 1:1-, 1:n- und m:n-BeziehungenOne-to-one, one-to-many and many-to-many relationships
    • Vererbung (Tabelle pro Hierarchie, Tabelle pro Typ und Tabelle pro konkreter Klasse)Inheritance (table per hierarchy, table per type and table per concrete class)
    • Komplexe TypenComplex types
    • Gespeicherte ProzedurenStored procedures
  • Ein visueller Designer zum Erstellen von Entitätsmodellen.A visual designer to create entity models.
  • Ein Code First-Prozess für das Erstellen von Entitätsmodellen durch das Schreiben von Code.A "Code First" experience to create entity models by writing code.
  • Modelle können entweder anhand vorhandener Datenbanken erstellt und dann manuell bearbeitet werden, oder Sie können sie komplett neu erstellen und dann zum Erstellen neuer Datenbanken verwenden.Models can either be generated from existing databases and then hand-edited, or they can be created from scratch and then used to generate new databases.
  • Integration in .NET Framework-Anwendungsmodelle, ASP.NET eingeschlossen, und anhand von Datenbindung mit WPF und WinForms.Integration with .NET Framework application models, including ASP.NET, and through databinding, with WPF and WinForms.
  • Datenbankkonnektivität basierend auf ADO.NET und zahlreichen anderen Anbietern, die eine Verbindung mit SQL Server, Oracle, MySQL, SQLite, PostgreSQL, DB2 usw. herstellen.Database connectivity based on ADO.NET and numerous providers available to connect to SQL Server, Oracle, MySQL, SQLite, PostgreSQL, DB2, etc.

Sollte ich EF6 oder EF Core verwenden?Should I use EF6 or EF Core?

EF Core ist eine modernere, einfache und erweiterbare Version von Entity Framework mit ähnlichen Funktionen wie EF6 und einigen Vorteilen.EF Core is a more modern, lightweight and extensible version of Entity Framework that has very similar capabilities and benefits to EF6. EF Core wurde vollständig neu geschrieben und enthält viele neue Features, die es in EF6 nicht gibt. Andererseits fehlen die komplexesten Mappingfeatures, die in EF6 vorhanden sind.EF Core is a complete rewrite and contains many new features not available in EF6, although it also still lacks some of the most advanced mapping capabilities of EF6. Erwägen Sie die Verwendung von EF Core in neuen Anwendungen, wenn die enthaltenen Features Ihren Anforderungen entsprechen.Consider using EF Core in new applications if the feature set matches your requirements. Unter Vergleichen von EF Core und EF 6 wird darauf ausführlicher eingegangen.Compare EF Core & EF6 examines this choice in greater detail.

Erste SchritteGet Started

Fügen Sie Ihrem Projekt das EntityFramework-NuGet-Paket hinzu, oder installieren Sie Entity Framework Tools für Visual Studio.Add the EntityFramework NuGet package to your project or install the Entity Framework Tools for Visual Studio. Sehen Sie sich anschließend Videos an, lesen Sie Tutorials und weiterführende Dokumentationsartikel, sodass Sie die Funktionen von Entity Framework 6 optimal nutzen können.Then watch videos, read tutorials, and advanced documentation to help you make the most of EF6.

Frühere Versionen von Entity FrameworkPast Entity Framework Versions

Dies ist die Dokumentation für die aktuelle Version von Entity Framework 6. Viele der Punkte gelten jedoch auch für ältere Releases.This is the documentation for the latest version of Entity Framework 6, although much of it also applies to past releases. Unter Neues und Frühere Releases finden Sie eine vollständige Liste der EF-Releases mit dazugehörigen neuen Features.Check out What's New and Past Releases for a complete list of EF releases and the features they introduced.