Hier ein Überblick zu nützlichen Quellen rund um meinen Vortrag gestern auf der SQLPass und darüber hinaus.
Grundsätzlich gibt es folgende 3 Ansätze, um mit dem Entity Framework als OR-Mapper zu entwickeln:
Database First (Reverse Engineering): Aus der vorhandenen Datenbank wird das Entity Data Model (edmx) und der Code (z.B. die Entitäten) generiert. Verfügbar ist der Ansatz seit der ersten Stunde mit Version 1 im .NET Framework 3.5 SP1. Eine Anleitung dazu findet ihr hier.
Model First (Forward Engineering): Eine Anleitung dazu gibt es hier bzw. für Version 4.1 mit dem DbContext hier. Achtung: Out of the box wird keine Unterstützung für DB Versionierung bzw. Migration angeboten. Das erzeugte T-SQL macht immer ein Drop der Daten! Mit VS2010 Premium oder Ultimate gibt es die Funktion “Schema Compare”im Menüpunkt “Data”. Außerdem gibt es noch in der Visual Studio Gallery das “Entity Designer Database Generation Power Pack”, was neue T4-Vorlagen für besagtes Problem mitbringt. Keine der beiden Möglichkeiten wurden von mir vorgestellt oder bisher selbst getestet! Model First ist seit NET Framework 4 verfügbar (entspricht auch Entity Framework Version 4).
Code First: Ist seit Version 4.1 des Entity Frameworks verfügbar, welches aktuell über NuGet bezogen werden kann. 4.1 wurde zwar als Go Live Version mit Support veröffentlicht, allerdings haben sich Bugs eingeschlichen. Darüber hinaus fehlt es noch am ein oder anderen Ende. Folgende 2 Artikel bieten die wichtigsten Informationen: Artikel 1 und Artikel 2. Weiterführende Links sind noch die Möglichkeit zum Überschreiben der Konventionen im Code oder per Annotationen. Den Walkthrough für Code First gibt es hier. Achtung: Zusätzlich zu den ursprünglichen Klassen ObjectContext und ObjectSet (besser IObjectSet verwenden) gibt es jetzt DbContext und DbSet (besser IDbSet verwenden).
Es folgen noch ein paar weitere Links zu angesprochenen Themen:
Wie man eine testbare und somit gute Architektur basierenden auf dem EF aufbaut, zeigt der folgende, sehr empfehlenswerte Artikel von Scott Allen:
Testability and Entity Framework 4.0
Hierzu werde ich in nächster Zeit noch diverse Blogposts veröffentlichen, da ich Alternativen zu dem ein oder anderen Punkt aufzeigen will. Unter anderem wird das Open Closed Principle in der UnitOfWork verletzt und die Queries werden in der kompletten Anwendungsarchitektur verstreut.
Zu guter Letzt noch für die dotnet Pro Abonnementen unter euch: Im März hat eine 7-teilige Serie über das Entity Framework begonnen, von denen ich v.a. die Teile 1,4 und 5 empfehlen kann. Außerdem hat sich Patrick A. Lorenz in der 7.2011 im Artikel “Erst coden, dann fragen!” mit dem Code First Ansatz befasst.
Gefällt mir:
Like Wird geladen …