Entity Framework
Entity Framework Installation
Prinzipiell können für die Entwicklung mit dem Entity Framework in Visual Studio zwei Komponenten vorhanden sein - die Entity Framework Tools (welche den Entity Framework Designer enthalten) und die Entity Framework Laufzeitumgebung. Die Entity Framework Laufzeitumgebung muss immer installiert werden.
Entity Framework Tools
Das Visual Studio 2012 / 2013 beinhaltet bereits die Entity Framework Tools (welche durch Auswahl der Option Microsoft Web Developer Tools oder der Option Microsoft SQL Server Data Tools automatisch installiert werden). Ob die Installation durchgeführt wurde kann über Systemsteuerung > Programme und Funktionen > Entity Framework für Visual Studio 2012 (bzw. "2013") geprüft werden.
Die Entity Framework 6 Tools (neueste Version) können aber auch heruntergeladen werden (siehe Link) und ersetzen die automatisch installierte Version (Achtung: Evtl. mit dem Internet Explorer aufrufen, da sonst das Popup zur Auswahl der gewünschten Version (2012/2013) nicht angezeigt wird):
Download der Entity Framework Tools
Die Installation der neuesten Version findet man in Systemsteuerung > Programme und Funktionen > Entity Framework 6.1.3 Tools für Visual Studio 2012 (bzw. "2013"). Falls diese versehntlich entfernt wurden, kann die automatisch installierte Version durch eine Reparatur von Visual Studio wiederhergestellt werden (oder man installiert die EF 6 Tools (siehe oben) einfach neu).
Nach erfolgreicher Installation kann ein neues Entity Framework Daten-Modell innerhalb von Visual Studio mit Projekt > Neues Element hinzufügen (STRG + UMSCHALT + A) > Daten > ADO.NET Entity Data Model bei einem aktuell ausgewählten Projekt hinzugefügt werden.
Durch das Hinzufügen eines neuen Modells öffnet sich automatisch der Assistent für Entity Data Model (Entity Data Model Wizard), welcher die Erstellung eines Modells aus einer bestehenden Datenbank ermöglicht (über Reverse Engineering) oder auch den Start mit einem leeren Modell.
Die installierten Entity Framework 6 Tools enthalten:
- ADO.NET Entity Data Model-Designer (Entity Framework Designer), inkl. Modellbrowser-Fenster und Mappingdetails-Fenster
- Text Template Transformation Toolkit (T4) Vorlagen, um aus dem Domänenmodell Entitätenklassen (C#, VB) zu erstellen
- Assistent, um aus einer bestehenden Datenbank ein Modell zu erstellen bzw. zu aktualisieren (Reverse Engineering)
- Assistent, um aus einem Modell das Skript zur Erstellung einer Datenbank zu generieren (Aktualisierung ist nicht möglich)
Entity Framework Laufzeit-Umgebung (Entity Framework Runtime)
Wird ein Modell mit den Entity Framework Tools erstellt (z. B. mittels Reverse Engineering aus einer SQL-Server-Datenbank) wird automatisch die Entity Framework Laufzeit-Umgebung als NuGet-Paket dem aktuellen Projekt hinzugefügt.
Wenn sich das Modell aber separat in einer Klassenbibliothek (eigenständiges Projekt) befindet, z. B. im Falle das Web-Anwendung und der ORM in zwei unterschiedlichen Projekten sind, reicht es nicht aus, in der "Hauptanwendung" nur die Klassenbibilothek als Verweis einzutragen, weil dadurch die Entity Framework Runtime nicht automatisch installiert wird. In so einem Fall muss die Laufzeit-Umgebung zusätzlich auch im Web-Projekt installiert werden (oder in jedem Projekt, welches die ORM-Klassenbibliothek nutzen will).
Dies geschieht mittels Installation des entsprechenden NuGet-Pakets.
Beim Visual Studio 2012 / 2013 ist der NuGet-Paket-Manager (Bibliotheks-Paket-Manager) bereits enthalten, so das entsprechend das (EntityFramework-)Paket einfach gesucht oder direkt mittels Paket-Manager-Konsole installiert werden kann:
1. Öffnen der Paket-Manager-Konsole: Visual Studio 2012 / 2013 > Tools > Bibliotheks-Paket-Manager > Paket-Manager-Konsole
2. Installation des Entity Framework Pakets durch Eingabe von Install-Package EntityFramework in der Konsole
Aktuell wird automatisch das Entity Framework 6.1.3 (RTM) vom 10.03.2015 installiert.
WICHTIG: In so einem Fall muss auch der Connection-String in der web.config oder app.config eingetragen sein (kann aus dem Klassenbibliotheksprojekt übernommen werden) damit auch die eigentliche Applikation die entsprechende Verbindung zur Datenbank aufbauen kann (die app.config der Klassenbibliothek wird vom Entity Framework nur in der Designphase verwendet).