Inheritance Strategien mit dem Entity Framework

Werbung
Building & Connecting Know-how
16.-17. Februar 2011, München
Inheritance Strategien mit
dem Entity Framework
• TPT, TPC, TPH mit DB First,
Model First und Code First
1.0
Partner:
Veranstalter:
Über René Leupold
•
•
•
•
Organisator .NET User Group Bern
Mehrfacher MCPD und MCTS
Comgate Solutions AG
http://www.databinding.net
Weg zum Entity Framework
VS 2008
Weg zum Entity Framework
VS 2008 SP1
Die Vision
Die Realität in VS 2008 SP1
Eine Frage ans Publikum
• Wer verwendet:
– DataReader
– Datasets
– Linq to SQL
– Entity Framework
– NHibernate
– Andere O/R-Mapper
– VS 2008?
Agenda
•
•
•
•
•
•
•
Einführung
Begriffe im Zusammenhang
Wie war es in .NET 3.5 SP1
Szenarien (TPT, TPC, TPH)
Optimierungsmöglichkeiten
Methodenwahl/Tipps und Tricks
Ressourcen
Building & Connecting Know-how
16.-17. Februar 2011, München
Einführung
Partner:
Veranstalter:
EF/NH – Ein Überblick
• Ein kleiner Teil aus der Vortragsserie
Das Beispiel
Abgrenzung
• Einführung in Code First
• Bezug auf NHibernate
• Ultimativer Weg
Building & Connecting Know-how
16.-17. Februar 2011, München
Begriffe
Zum Thema
Partner:
Veranstalter:
ORM impedance mismatch
• Unterschiedliche Paradigmen zwischen OO
und Relationalen Systemen
• O/R Mapper bildet die Schicht dazwischen
• Kann zu Problemen führen
– Wartung
– Verständlichkeit
– Performanz
Polymorphie
• Beschreibt die Fähigkeit, unterschiedliche
Datentypen anzunehmen
Table per hierarchie (TPH)
• Synonym: Single table inheritance
Table per type (TPT)
– Synonyme: class table inheritance
– Vertikale Partitionierung
Table per class (TPC)
– Synonyme: concrete table inheritance, Table per
concrete type
– Horizontale Partitionierung
Methoden
•
•
•
•
Top down
Middle out
Bottom up
Meet in the Middle
Top down
• Synonyme
– Forward Engineering
– Code First
• Klassen zuerst
• Code-Generierung
– Mapping
– DB-Schema
Middle out
• Synonyme
– Model First
• Mapping zuerst
• Code-Generierung
– Klassen
– DB-Schema
Bottom up
• Synonyme
– Reverse Engineering
• DB-Schema zuerst
• Code-Generierung
– Mapping
– Klassen
Meet in the middle
• Synonyme
– n/a
• DB-Schema und Klassen zuerst
• Code-Generierung
– Mapping
• Mögliche Ursache
– Einseitige Sicht von Architekt und DBA
Unterstützte Methoden
Methode
Top down
Middle out
Bottom up
Meet in the middle
Code First (CTP5 - DbContext)
Model First (EF 4), DbContext
mit UML
Generate from Database (EF
1), DbContext mit EDMX und
T4
Garantie für ein nerviges
Projekt
Building & Connecting Know-how
16.-17. Februar 2011, München
Wie war es in
.NET 3.5 SP1
Partner:
Veranstalter:
Mapping
Mapping
TPT
TPH (simpel)
TPH (Das Beispiel)
TPC
Fehler 2078 (manuelle
Anpassung EDMX)
Fehler 11007 (manuelle
Anpassung EDMX)
Methoden
Methode
Top down
Middle out
Bottom up
Generate from Database
Generiertes SQL
Das Beispiel (TPT)
tpt.Product.ToList();
Unterschied is/OfType
tpt.Product.Where(p => p is Hardcover).ToList();
Unterschied is/OfType
tpt.Product.OfType<Hardcover>().ToList();
Ausführungsplan
Aus Entity SQL IN
SELECT VALUE p.ID
FROM TestModel35.Dispatchings AS p
WHERE p.ID IN { 1,2,3,4,5,6,7,8 }
wird SQL OR
SELECT [Extent1].[ID] AS [ID] FROM
[dbo].[Dispatching] AS [Extent1] WHERE
([Extent1].[ID] = 1)
OR ([Extent1].[ID] = 2)
OR ([Extent1].[ID] = 3)
OR ([Extent1].[ID] = 4)
OR ([Extent1].[ID] = 5)
OR ([Extent1].[ID] = 6)
OR ([Extent1].[ID] = 7)
OR ([Extent1].[ID] = 8)
Building & Connecting Know-how
16.-17. Februar 2011, München
Szenarien
Partner:
Veranstalter:
TPT
TPT
• DB First
– 1:1 Beziehung zwischen Tabellen (1:n möglich,
aber )
• Model First
– Standard Template
• Code First
• Herausforderung
– Joins
TPH
TPH
• DB First
– Diskriminatorspalte
• Model First
– Manuelle Korrekturen notwendig
• Code First
– Default
• Herausforderung
– CheckConstraint bilden, Null
TPC
TPC
• DB First
– Manuelle Anpassungen notwendig
• Model First
– Kein passendes Template vorhanden
• Code First
– Aktuell noch ein paar Bugs in der CTP5
• Herausforderung Identity
– GUID, Manuell, Unterschiedliche
Zählereinstellungen
Building & Connecting Know-how
16.-17. Februar 2011, München
Optimierung
Partner:
Veranstalter:
2 Welten
• EF (Als Vertreter OO)
– Compiled Query
– Vorwiegend Suchresultate: NoTracking
– Paging (Skip/Take)
– View Generation
– 2nd Level Cache (EFCachingProvider)
– ObjectContext.ExecuteStoreQuery /
DbContext.Database.SqlQuery
– Lazy Loading
– EFTracingProvider, EFProf
Relationale Datenbanksysteme
• Tuningprozess (ohne BS, NW, HW)
Informationsmanagement
Datenbankdesign
Applikationsumgebung
Datenbankzugriff
Datenbankkonfiguration
Konkret
• In virtuellen Umgebungen die Auslastung
prüfen
• Indexierung
• SQL überarbeiten
• Schrittweise Denormalisieren
• Für TPT bedingt Indexierte Views (OfType)
• SQL Server Profiler/Datenbankoptimierungsratgeber
Building & Connecting Know-how
16.-17. Februar 2011, München
Methodenwahl
Partner:
Veranstalter:
Building & Connecting Know-how
16.-17. Februar 2011, München
Tipps & Tricks
Partner:
Veranstalter:
Database Generation
Code First - Eigene
Konventionen
Von Code First zu DB First
EF Tracing Provider
EF Caching Provider
• 2nd Level Cache
• Problem beim Provider-Toolkit
– Nicht kompatibel mit DbContext
LinqPad
EF 4.0 Recipes
Ressourcen
•
•
•
•
http://ef-faq.org/
http://blogs.msdn.com/b/efdesign/
http://blogs.msdn.com/b/adonet/
http://www.databinding.net/blog/category/entityframework.html
• http://code.msdn.microsoft.com/EFProviderWrappers
• EFD Database Generation Power Pack
http://visualstudiogallery.msdn.microsoft.com/df3541c3d833-4b65-b942-989e7ec74c87/
• http://code.msdn.microsoft.com/DesignerExtStartKit
Building & Connecting Know-how
16.-17. Februar 2011, München
FRAGEN?
Partner:
Veranstalter:
Wir sehen uns wieder!
Konferenz speziell zu C++
05. – 06. Mai 2011, direkt am Chiemsee
cpp.ADC2011.de
Trainings und Events der ppedv
Mehr als 100 verschiedene Trainings
auf Microsoft-Technologien spezialisiert
11 Standorte in D & AT
Maßgeschneiderte Trainings
direkt bei Ihnen vor Ort!
www.ppedv.de
Building & Connecting Know-how
16.-17. Februar 2011, München
Hat Ihnen mein Vortrag gefallen?
Ich freue mich auf Ihr Feedback!
Partner:
Veranstalter:
Building & Connecting Know-how
16.-17. Februar 2011, München
Vielen Dank!
René Leupold
[email protected]
Partner:
Veranstalter:
Herunterladen