Inheritance Strategien mit

leathermumpsimusΛογισμικό & κατασκευή λογ/κού

13 Δεκ 2013 (πριν από 3 χρόνια και 8 μήνες)

92 εμφανίσεις

Building & Connecting Know
-
how


16.
-
17. Februar 2011, München

Veranstalter:

Partner:

Inheritance

Strategien mit
dem Entity
Framework



TPT, TPC, TPH mit DB First,
Model First und Code First

1.0

Ü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

Veranstalter:

Partner:

Einführung

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

Veranstalter:

Partner:

Begriffe

Zum Thema

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

Code First (CTP5
-

DbContext
)

Middle

out

Model First (EF 4),
DbContext

mit UML

Bottom

up

Generate

from

Database (EF
1),
DbContext

mit EDMX und
T4

Meet

in the
middle

Garantie für ein nerviges
Projekt

Building & Connecting Know
-
how


16.
-
17. Februar 2011, München

Veranstalter:

Partner:

Wie war es in

.NET 3.5 SP1

Mapping


Mapping

TPT

TPH (simpel)

TPH (Das Beispiel)

Fehler 2078 (manuelle
Anpassung

EDMX)

TPC

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

Veranstalter:

Partner:

Szenarien

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

Veranstalter:

Partner:

Optimierung

2 Welten


EF (Als Vertreter OO)


Compiled

Query


Vorwiegend Suchresultate:
NoTracking


Paging (
Skip
/Take)


View

Generation


2nd
L
evel 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/
Datenbankoptimierungs
-
ratgeber

Building & Connecting Know
-
how


16.
-
17. Februar 2011, München

Veranstalter:

Partner:

Methodenwahl

Building & Connecting Know
-
how


16.
-
17. Februar 2011, München

Veranstalter:

Partner:

Tipps & Tricks

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
/
entity
-
framework.html


http://
code.msdn.microsoft.com/EFProviderWrappers


EFD Database Generation Power Pack
http
://visualstudiogallery.msdn.microsoft.com/df3541c3
-
d833
-
4b65
-
b942
-
989e7ec74c87
/


http://code.msdn.microsoft.com/DesignerExtStartKit

Building & Connecting Know
-
how


16.
-
17. Februar 2011, München

Veranstalter:

Partner:

FRAGEN
?

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

Veranstalter:

Partner:

Hat Ihnen mein Vortrag gefallen
?

Ich freue mich auf Ihr Feedback!


Building & Connecting Know
-
how


16.
-
17. Februar 2011, München

Veranstalter:

Partner:

Vielen Dank!

René
Leupold

connect
@
databinding.net