rené leupold is developer comgate solutions ag entity framework ein Überblick
TRANSCRIPT
![Page 1: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/1.jpg)
René LeupoldIS DeveloperComgate Solutions AG
Entity FrameworkEin Überblick
![Page 2: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/2.jpg)
www.dnug-bern.ch Grösste aktive .NET User Group der SchweizRegelmässige Treffen mit Schwerpunktthemen
Nächste EventsMo, 30.5.2011User Experience Crash KursDo, 9.6.2011 DotNetNuke
.NET User Group Bern
![Page 3: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/3.jpg)
Agenda
ÜberblickArchitekturVorgehensweisenPhilosophie EDM-Designer/Code FirstVergleich ObjectContext/DbContextZusammenfassung
![Page 4: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/4.jpg)
Überblick
![Page 5: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/5.jpg)
ÜberblickWas ist neu mit Visual Studio 2010 SP1
VS 2010 SP1 != EF 4.1Performance
EDM DesignerEdmGen.exe
Anpassungen STE Code-Generierungsvorlage
![Page 6: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/6.jpg)
ÜberblickWas ist neu mit EF 4.1
Code First (DbContext)Installation
Via NuGet
Installation ADO.NET Entity Framework 4.1
![Page 7: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/7.jpg)
Überblick Unterstützte Datenbanken
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
![Page 8: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/8.jpg)
Architektur
![Page 9: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/9.jpg)
ArchitekturEntity Data Model (EDM)
Entwicklung auf Anwendungs-ebeneUnabhängig vom logischenModell des SpeichersSeparation of Concerns
CSDLMSLSSDL
Kernkonzept ERM
EDM
Conceptual (CSDL)
Mapping (MSL)
Storage (SSDL)
![Page 10: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/10.jpg)
ArchitekturEntity Framework 4.0
Object Services
Entity Client
Provider
ADO.NET
SQL eSQLLinq to Entities
![Page 11: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/11.jpg)
ArchitekturEntity Framework 4.1
DbContext
Connection
Entity Framework 4.0
Object Services
Model Builder
![Page 12: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/12.jpg)
Vorgehensweisen
![Page 13: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/13.jpg)
VorgehensweisenBottom up
DB First
DB Schema Mapping Klassen
![Page 14: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/14.jpg)
Bottom up
Demo
![Page 15: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/15.jpg)
VorgehensweisenMiddle out
Model First
Mapping
Klassen
DB Schema
![Page 16: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/16.jpg)
Middle out
Demo
![Page 17: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/17.jpg)
VorgehensweisenTop down
Code First
Klassen Mapping DB Schema
![Page 18: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/18.jpg)
Top Down
Demo
![Page 19: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/19.jpg)
VorgehensweisenTop down
Code First
![Page 20: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/20.jpg)
VorgehensweisenMeet in the middle
Problematisch
Mapping
Klassen
DB Schema
![Page 21: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/21.jpg)
EDM-Designer/Code First
![Page 22: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/22.jpg)
PhilosophieEDM-Designer
ModellzentriertKonfigurationCode GenerierungAnpassbar mit T4 und WorkflowsDouble derived pattern (partial)
![Page 23: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/23.jpg)
EDM Designer
Demo
![Page 24: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/24.jpg)
PhilosophieCode First
CodezentriertConventions over ConfigurationPatterns and Practices
![Page 25: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/25.jpg)
PhilosophieCode First Konventionen
Mehr als 20 KonventionenDie Konventionen verstehen ist wichtigKönnen entfernt werden
Hinzufügen von Konventionen mit EF 4.1 nicht möglich
![Page 26: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/26.jpg)
PhilosophieCode First Konventionen
![Page 27: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/27.jpg)
PhilosophieCode First Konfiguration
Fluent Mapping API
![Page 28: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/28.jpg)
PhilosophieCode First Konfiguration
Data Annotations
![Page 29: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/29.jpg)
Vergleich ObjectContext/DbContext
![Page 30: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/30.jpg)
VergleichObjectContext/DbContext
ConnectionStringEntitätscontainerLaden abhängiger ObjekteValidierungDirektes SQLCacheChange trackingOptimistic Concurrency
![Page 31: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/31.jpg)
VergleichObjectContext/DbContext
ConnectionString
![Page 32: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/32.jpg)
VergleichObjectContext/DbContext
Entitätscontainer
![Page 33: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/33.jpg)
VergleichObjectContext/DbContext
Laden abhängiger Objekte
![Page 34: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/34.jpg)
VergleichObjectContext/DbContext
Validierung
![Page 35: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/35.jpg)
VergleichObjectContext/DbContext
Direktes SQL
![Page 36: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/36.jpg)
VergleichObjectContext/DbContext
Cache
![Page 37: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/37.jpg)
VergleichObjectContext/DbContext
Change tracking
![Page 38: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/38.jpg)
VergleichObjectContext/DbContext
Optimistic Concurrency
![Page 39: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/39.jpg)
Wann EDM-DesignerModellzentriert
DB FirstDatenbank bestehtDetailanforderungen auf Ebene DBKonkurrenzierende Richtlinien DB
Model FirstRoundtrip ermöglichenArchitektur und Coding-Standards auf Ebene PersistenzmodellVerwenden von T4-Vorlagen und WorkflowsEDM mit eigenen Metadaten für pragmatische Modelle
![Page 40: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/40.jpg)
Wann Code FirstCodezentriert
Der Code beschreibt das Modell (DDD)Fehlende Akzeptanz zum EDM-DesignerModellierung mit UML/DSLDB Schema leitet sich aus Klassenmodell ab
![Page 41: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/41.jpg)
CodezentriertVorteile
Sehr Effizient durch KonventionenData Annotations als Grundlage für DB SchemaValidierung mit SaveChanges
Über alle Layer :-) Data Annotations und Fluent Mapping API kombinierbar
Fluent Mapping API gewinnt beim DB SchemaExplizites Laden mit FilterVereinfachtes Change Tracking
![Page 42: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/42.jpg)
Code FirstHerausforderungen
Kein DB Schema UpdateUmweg über Dev/Int/Prod
Pluggable Conventions in der CTP5 hängen gebliebenKein Support für Create, Update und Delete-ProzedurenKeine Unterstützung für
Compiled QueriesEntity SQL (nur über IObjectContextAdapter)
Keine Erstellung von FK IndizesMinimale Rechte für den Datenbankbenutzer auf Prod
![Page 43: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/43.jpg)
Zusammenfassung
EF Entwicklung ist aktuell losgelöst von SP´sEDM ist eine Implementierungsform des ERMDbContext ist ein Wrapper um den ObjectContext
Einfluss durch DbModelBuilderEF unterstützt nun alle VorgehensweisenDbContext für Code FirstEDM-Designer
ObjectContext oder DbContext
![Page 44: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/44.jpg)
ZusammenfassungMapping-SzenarienMapping DB First Model First Code First
1 : m bidirectional Ja (Default) Ja (Default) Ja
1 : m unidirectional Ja (FK-A) Ja (FK-A) Ja
m : n Ja Ja Ja
1 : 1 Ja Ja Ja
Selbstreferenzierung Ja Ja Ja
1 Klasse : m Tabellen Ja Ja Ja (mb)
m Klassen : 1 Tabelle (CT) Ja Ja Ja
m Klassen : 1 Tabelle Split Ja Bedingt Ja (mb)
TPH Ja Bedingt Ja (Default)
TPT Ja Ja (Default) Ja (mb)
TPC Bedingt Bedingt Bedingt (mb)
![Page 45: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/45.jpg)
ZusammenfassungLinks
Channel 9 Interview mit Dr. Peter ChenADO.NET Team BlogEntity Framework Design BlogBlog Arthur Vickers (EF Developer Team)Meine Erfahrungen mit EFMapping-Szenarien Code First (Beispiele)
![Page 46: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/46.jpg)
ZusammenfassungBuch-Empfehlungen
ISBN-13: 978-0596807269
ISBN-13: 978-1430227038
![Page 47: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/47.jpg)
Q&A
![Page 48: René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d7549795902118c9ff2/html5/thumbnails/48.jpg)
© 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.