René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick
Grösste aktive.NET User Group der Schweiz Regelmässige Treffen mit Schwerpunktthemen Nächste Events Mo, User Experience Crash Kurs Do, DotNetNuke.NET User Group Bern
Agenda Überblick Architektur Vorgehensweisen Philosophie EDM-Designer/Code First Vergleich ObjectContext/DbContext Zusammenfassung
Überblick
VS 2010 SP1 != EF 4.1 Performance EDM Designer EdmGen.exe Anpassungen STE Code-Generierungsvorlage
Code First (DbContext) Installation Via NuGet Installation ADO.NET Entity Framework 4.1
DB2 (OpenLink, IBM) Firebird (OpenLink, Firebird) Informix (OpenLink, IBM) MySQL (MySQL, DevArt, OpenLink) Oracle (Oracle, DevArt, Progress, OpenLink) Postgres (DevArt, OpenLink, Npsql) SQLite(DevArt, System.Data.SqlLite) Sybase (Progress, OpenLink, Sybase) Synergy (Synergex) U2 (IBM) VistaDB
Architektur
Entwicklung auf Anwendungs- ebene Unabhängig vom logischen Modell des Speichers Separation of Concerns CSDL MSL SSDL Kernkonzept ERM EDM
DbContext Entity Framework 4.0
Vorgehensweisen
DB First
Bottom up Demo
Model First
Middle out Demo
Code First
Top Down Demo
Code First
Problematisch
EDM-Designer/Code First
Modellzentriert Konfiguration Code Generierung Anpassbar mit T4 und Workflows Double derived pattern (partial)
EDM Designer Demo
Codezentriert Conventions over Configuration Patterns and Practices
Mehr als 20 Konventionen Die Konventionen verstehen ist wichtig Können entfernt werden Hinzufügen von Konventionen mit EF 4.1 nicht möglich
Fluent Mapping API
Data Annotations
Vergleich ObjectContext/DbContext
ConnectionString Entitätscontainer Laden abhängiger Objekte Validierung Direktes SQL Cache Change tracking Optimistic Concurrency
ConnectionString
Entitätscontainer
Laden abhängiger Objekte
Validierung
Direktes SQL
Cache
Change tracking
Optimistic Concurrency
DB First Datenbank besteht Detailanforderungen auf Ebene DB Konkurrenzierende Richtlinien DB Model First Roundtrip ermöglichen Architektur und Coding- Standards auf Ebene Persistenzmodell Verwenden von T4- Vorlagen und Workflows EDM mit eigenen Metadaten für pragmatische Modelle
Der Code beschreibt das Modell (DDD) Fehlende Akzeptanz zum EDM-Designer Modellierung mit UML/DSL DB Schema leitet sich aus Klassenmodell ab
Sehr Effizient durch Konventionen Data Annotations als Grundlage für DB Schema Validierung mit SaveChanges Über alle Layer :-) Data Annotations und Fluent Mapping API kombinierbar Fluent Mapping API gewinnt beim DB Schema Explizites Laden mit Filter Vereinfachtes Change Tracking
Kein DB Schema Update Umweg über Dev/Int/Prod Pluggable Conventions in der CTP5 hängen geblieben Kein Support für Create, Update und Delete-Prozeduren Keine Unterstützung für Compiled Queries Entity SQL (nur über IObjectContextAdapter) Keine Erstellung von FK Indizes Minimale Rechte für den Datenbankbenutzer auf Prod
Zusammenfassung EF Entwicklung ist aktuell losgelöst von SP´s EDM ist eine Implementierungsform des ERM DbContext ist ein Wrapper um den ObjectContext Einfluss durch DbModelBuilder EF unterstützt nun alle Vorgehensweisen DbContext für Code First EDM-Designer ObjectContext oder DbContext
MappingDB FirstModel FirstCode First 1 : m bidirectionalJa (Default) Ja 1 : m unidirectionalJa (FK-A) Ja m : nJa 1 : 1Ja SelbstreferenzierungJa 1 Klasse : m TabellenJa Ja (mb) m Klassen : 1 Tabelle (CT)Ja m Klassen : 1 Tabelle SplitJaBedingtJa (mb) TPHJaBedingtJa (Default) TPTJaJa (Default)Ja (mb) TPCBedingt Bedingt (mb)
Channel 9 Interview mit Dr. Peter Chen ADO.NET Team Blog Entity Framework Design Blog Blog Arthur Vickers (EF Developer Team) Meine Erfahrungen mit EF Mapping-Szenarien Code First (Beispiele)
ISBN-13: ISBN-13:
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.