Entity Framework - Übersicht
Was ist Entity Framework?
Entity Framework wurde erstmals im Jahr 2008 veröffentlicht. Microsoft ist das wichtigste Mittel für die Interaktion zwischen .NET-Anwendungen und relationalen Datenbanken. Entity Framework ist ein Object Relational Mapper (ORM), ein Tool, das die Zuordnung zwischen Objekten in Ihrer Software zu den Tabellen und Spalten einer relationalen Datenbank vereinfacht.
Entity Framework (EF) ist ein Open Source ORM-Framework für ADO.NET, das Teil von .NET Framework ist.
Ein ORM kümmert sich um das Erstellen von Datenbankverbindungen und das Ausführen von Befehlen sowie um das Aufnehmen von Abfrageergebnissen und das automatische Materialisieren dieser Ergebnisse als Ihre Anwendungsobjekte.
Ein ORM hilft auch dabei, Änderungen an diesen Objekten zu verfolgen. Wenn Sie dazu aufgefordert werden, werden diese Änderungen auch für Sie in der Datenbank gespeichert.
Warum Entity Framework?
Entity Framework ist ein ORM. ORMs zielen darauf ab, die Produktivität des Entwicklers zu steigern, indem die redundante Aufgabe reduziert wird, die in den Anwendungen verwendeten Daten beizubehalten.
Entity Framework kann die erforderlichen Datenbankbefehle zum Lesen oder Schreiben von Daten in die Datenbank generieren und für Sie ausführen.
Wenn Sie abfragen, können Sie Ihre Abfragen mit LINQ an Entitäten für Ihre Domänenobjekte ausdrücken.
Entity Framework führt die entsprechende Abfrage in der Datenbank aus und materialisiert die Ergebnisse in Instanzen Ihrer Domänenobjekte, damit Sie in Ihrer App arbeiten können.
Es gibt andere ORMs auf dem Markt wie NHibernate und LLBLGen Pro. Die meisten ORMs ordnen Domänentypen normalerweise direkt dem Datenbankschema zu.
Entity Framework verfügt über eine detailliertere Zuordnungsebene, sodass Sie Zuordnungen anpassen können, indem Sie beispielsweise die einzelne Entität mehreren Datenbanktabellen oder sogar mehrere Entitäten einer einzelnen Tabelle zuordnen.
Entity Framework ist die von Microsoft empfohlene Datenzugriffstechnologie für neue Anwendungen.
ADO.NET scheint sich direkt auf die Technologie für Datensätze und Datentabellen zu beziehen.
Im Entity Framework werden alle vorwärts gerichteten Investitionen getätigt, was bereits seit einigen Jahren der Fall ist.
Microsoft empfiehlt, dass Sie Entity Framework über ADO.NET oder LINQ to SQL für alle Neuentwicklungen verwenden.
Konzeptmodell
Für Entwickler, die an datenbankorientierte Entwicklung gewöhnt sind, besteht die größte Veränderung bei Entity Framework darin, dass Sie sich auf Ihre Geschäftsdomäne konzentrieren können. Was soll Ihre Anwendung tun, ohne durch die Leistungsfähigkeit der Datenbank eingeschränkt zu werden?
Bei Entity Framework wird der Schwerpunkt als konzeptionelles Modell bezeichnet. Es ist ein Modell der Objekte in Ihrer Anwendung, kein Modell der Datenbank, mit der Sie Ihre Anwendungsdaten beibehalten.
Ihr konzeptionelles Modell stimmt möglicherweise mit Ihrem Datenbankschema überein oder es kann ganz anders sein.
Sie können einen visuellen Designer verwenden, um Ihr konzeptionelles Modell zu definieren, das dann die Klassen generieren kann, die Sie letztendlich in Ihrer Anwendung verwenden werden.
Sie können einfach Ihre Klassen definieren und eine Funktion von Entity Framework namens Code First verwenden. Und dann wird Entity Framework das konzeptionelle Modell verstehen.
In beiden Fällen ermittelt Entity Framework, wie Sie von Ihrem konzeptionellen Modell zu Ihrer Datenbank wechseln können. Sie können also Ihre konzeptionellen Modellobjekte abfragen und direkt mit ihnen arbeiten.
Eigenschaften
Im Folgenden finden Sie die Grundfunktionen von Entity Framework. Diese Liste basiert auf den wichtigsten Funktionen und auch auf häufig gestellten Fragen zu Entity Framework.
- Entity Framework ist ein Microsoft-Tool.
- Entity Framework wird als Open Source-Produkt entwickelt.
- Entity Framework ist nicht mehr an den .NET-Veröffentlichungszyklus gebunden oder von diesem abhängig.
- Funktioniert mit jeder relationalen Datenbank mit einem gültigen Entity Framework-Anbieter.
- SQL-Befehlsgenerierung von LINQ zu Entities.
- Entity Framework erstellt parametrisierte Abfragen.
- Verfolgt Änderungen an In-Memory-Objekten.
- Ermöglicht das Einfügen, Aktualisieren und Löschen der Befehlsgenerierung.
- Arbeitet mit einem visuellen Modell oder mit Ihren eigenen Klassen.
- Entity Framework hat die Prozedurunterstützung gespeichert.