Präsentation herunterladen
1
Entity Framework Tipps und Tricks
René Leupold IS Developer Comgate Solutions AG
2
.NET User Group Bern www.dnug-bern.ch
Grösste aktive .NET User Group der Schweiz Regelmässige Treffen mit Schwerpunktthemen Nächste Events Mo, User Experience Crash Kurs Do, DotNetNuke
3
Agenda Kontext-Laufzeit Abfragen EDM-Designer EF Datenbank-Provider
Leistungsoptimierung Code First
4
Kontext-Laufzeit Web-Anwendungen
HttpContext.Current Request Repository ObjectContext (ctx) Repository Repository Repository
5
Kontext-Laufzeit Smart clients
Pro Form GUI Form ctx Form ctx Form ctx Form ctx
6
Abfragen
7
Abfragen LINQ to Entities
IQueryable<T> Verzögerte Ausführung DB
8
Abfragen LINQ to Objects
IEnumerable<T> Ausführung im RAM
9
Abfragen Objekte mit vielen Eigenschaften
10
Abfragen SqlFunctions/EntityFunctions
11
EDM Designer
12
EDM Designer Konkurrenzierende Namensrichtlinien
Variante 1 Entity Developer (DevArt, edml)
13
EDM Designer Konkurrenzierende Namensrichtlinien
Variante Huagati DBML/EDMX Tools
14
EDM Designer Konkurrenzierende Namensrichtlinien
Variante ADO.NET Entity Data Model Designer Extension Starter Kit Download und Installation Projekt aus Vorlage erstellen Manifestdatei anpassen ModelGenerationExtension.cs mit Logik befüllen Installation VS Neustart
15
EDM Designer ADO.NET Entity Data Model Designer Extension Starter Kit
Projekt aus Vorlage erstellen
16
EDM Designer ADO.NET Entity Data Model Designer Extension Starter Kit
Manifestdatei anpassen
17
EDM Designer ADO.NET Entity Data Model Designer Extension Starter Kit
ModelGenerationExtension.cs mit Logik befüllen
18
EDM Designer ADO.NET Entity Data Model Designer Extension Starter Kit
Nach VS Neustart
19
Konkurrenzierende Namensrichtlinien
Demo Konkurrenzierende Namensrichtlinien
20
EDM Designer Blob-Eigenschaft nachladen
Problem Spalte aus Tabelle nachladen Lösungsvorschlag Blob-Eigenschaft in eigene Entity auslagern 1 : 1 Beziehung modellieren
21
EDM Designer Blob-Eigenschaft nachladen
22
EDM Designer Spatial Data
Quelle:
23
EDM Designer Spatial Data Links
Variante mit View (J. Follas) Variante mit View (J. Lerman) Variante mit Trigger ohne View PostGIS and Entity Framework
24
EDM Designer Eigene Code-Generierungsvorlagen
Symbolvorlage erstellen Platzhalter $edmxInputFile$ Vstemplate mit Präfix ADONETArtifactGenerator_ ProjectItem OpenInEditor=„false“ Zippen und ins ItemTemplate-Verzeichnis kopieren
25
Eigene Code-Generierungsvorlagen
Demo Eigene Code-Generierungsvorlagen
26
EDM Designer Eigene DDL-Generierungsvorlagen Model First
T4-Template erstellen In Ordner „Laufwerk:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen“ kopieren Auswahl über Projekteigenschaften
27
EDM Designer Eigene DDL-Generierungsvorlagen Model First
28
EDM Designer Model First DDL-Skript als Projektmappe
Entity Designer Database Generation Power Pack installieren Datenbankprojekt hinzufügen (Name wie Edmx-Datei) Workflow Sync Database Project auswählen Assistent abschliessen
29
EDM Designer Model First DDL-Skript als Projektmappe
Entity Designer Database Generation Power Pack installieren
30
EDM Designer Model First DDL-Skript als Projektmappe
Datenbankprojekt hinzufügen (Name wie Edmx-Datei)
31
EDM Designer Model First DDL-Skript als Projektmappe
Datenbankprojekt hinzufügen (Name wie Edmx-Datei)
32
EDM Designer Model First DDL-Skript als Projektmappe
Workflow Sync Database Project auswählen
33
EDM Designer Model First DDL-Skript als Projektmappe
Assistent abschliessen
34
EDM Designer Model First DDL-Skript als Projektmappe
35
EDM Designer Model First/DB First Round trip
Voraussetzungen Entity Designer Database Generation Power Pack installieren Datenbankprojekt anlegen (Name wie Edmx-Datei) Workflow Datenbankgenerierung auf Sync Database Project
36
EDM Designer Model First/DB First Round trip
Änderungen am Modell vornehmen
37
EDM Designer Model First/DB First Round trip
Workflow Sync Database Project ausführen
38
EDM Designer Model First/DB First Round trip
Daten/Neuer Schemavergleich
39
EDM Designer Model First/DB First Round trip
Schemavergleich
40
EDM Designer Model First/DB First Round trip
Änderung an Datenbank vornehmen
41
EDM Designer Model First/DB First Round trip
Modell aus der Datenbank aktualisieren
42
EDM Designer Model First/DB First Round trip
Neues Modell mit Projekt synchronisieren
43
EDM Designer Huagati DBML/EDMXTools Round trip
Änderungen vornehmen
44
EDM Designer Huagati DBML/EDMXTools Round trip
Model Comparer öffnen
45
EDM Designer Huagati DBML/EDMXTools Round trip
Änderungen von CSDL auf SSDL übertragen
46
EDM Designer Huagati DBML/EDMXTools Round trip
Änderungen von SSDL auf Datenbank übertragen
47
EDM Designer Huagati DBML/EDMXTools Round trip
Change-Script
48
EDM Designer Huagati DBML/EDMXTools Round trip
Änderungen von Datenbank übertragen
49
EDM Designer Huagati DBML/EDMXTools Round trip
Model Comparer öffnen
50
EDM Designer Huagati DBML/EDMXTools Round trip
Änderungen von Datenbank auf SSDL übertragen
51
EDM Designer Huagati DBML/EDMXTools Round trip
Änderungen von SSDL auf CSDL übertragen
52
EDM Designer Huagati DBML/EDMXTools Round trip
Modell
53
EDM Designer Erweitern mit benutzerdefinierten Eigenschaften
EDM-Elemente um eigene Eigenschaften erweitern Anpassen auf Prozesse In T4-Vorlagen verwenden Entity Data Model Designer Extension Starter Kit installieren Projekt erstellen und Manifestdatei anpassen Properties.cs und PropertiesFactory.cs mit Logik befüllen Installation T4-Vorlage erstellen und verwenden
54
EDM Designer Erweitern mit benutzerdefinierten Eigenschaften
Projekt erstellen und Manifestdatei anpassen
55
EDM Designer Erweitern mit benutzerdefinierten Eigenschaften
Properties.cs und PropertiesFactory.cs mit Logik befüllen
56
EDM Designer Erweitern mit benutzerdefinierten Eigenschaften
Nach der Installation
57
EDM Designer Erweitern mit benutzerdefinierten Eigenschaften
T4-Vorlage erstellen und verwenden
58
Erweitern mit benutzerdefinierten Eigenschaften
Demo Erweitern mit benutzerdefinierten Eigenschaften
59
EF Datenbank-Provider
Am Beispiel MySQL
60
EF Datenbank-Provider Model First MySQL
MySQL Connector installieren (T4-Vorlage) DevArt dotConnect for MySQL Bessere Provider-Unterstützung (EdmFunctions) Modell anlegen Schema definieren DDL Generation Template SSDLToMySQL.tt (VS) Datenbank erstellen
61
EF Datenbank-Provider Model First MySQL
Modell anlegen
62
EF Datenbank-Provider Model First MySQL
DDL Generation Template SSDLToMySQL.tt (VS)
63
EF Datenbank-Provider Model First MySQL
Datenbank erstellen
64
EF Datenbank-Provider Mehrere Datenbank unterstützen
Modell anlegen Mapping erstellen Textdatei für SSDL anlegen Build Action Embedded Resource SSDL-Inhalt von Edmx-Datei kopieren und anpassen Kompilieren Connection String anpassen
65
EF Datenbank-Provider Mehrere Datenbank unterstützen
Modell anlegen
66
EF Datenbank-Provider Mehrere Datenbank unterstützen
Textdatei für SSDL anlegen
67
EF Datenbank-Provider Mehrere Datenbank unterstützen
Build Action Embedded Resource
68
EF Datenbank-Provider Mehrere Datenbank unterstützen
SSDL-Inhalt von Edmx-Datei kopieren und anpassen
69
EF Datenbank-Provider Mehrere Datenbank unterstützen
Connection String anpassen
70
EF Datenbank-Provider Mehrere Datenbank unterstützen
Datenbankabhängige Herausforderungen MySQL: Schema entspricht Datenbank Oracle: 30 Zeichen-Limit
71
Leistungsoptimierung
72
Leistungsoptimierung Profiler
Unterstützung SQL Server Profiler EF Prof Hinweise zu Problemen wie SELECT N+1 Huagati Query Profiler EF Tracing Provider
73
Leistungsoptimierung Kontext-Initialisierung mit View-Generation
Kaltstart vermeiden Variante 1: Mit EdmGen.exe erstellen Variante 2. T4 Vorlage Beispiel Modell mit 73 Entitäten
74
Demo View
75
Leistungsoptimierung Compiled Query
Cachen von Linq to Entities - Abfragen
76
Leistungsoptimierung NoTracking
Wenn keine Änderungsverfolgung notwendig
77
Leistungsoptimierung Massenmanipulation
Nicht die Stärke von ORM
78
Leistungsoptimierung Span-Queries
Laden vieler verbundener Objekte Eager Loading Ressourcenintensiv Lazy Loading Zeitintensiv
79
Demo Ein Schwachpunkt
80
Leistungsoptimierung Weitere Möglichkeiten
EfCachingProvider (2nd Level Cache) EFTracingProvider (Query-Rewrite simulieren) Paging mit Skip/Take Entity SQL auf Entity Client Datenbank Indizes setzen Query-Rewrite bei Join-Abfragen Datenbankoptimierungsratgeber verwenden Schrittweise denormalisieren
81
Code First
82
Code-First Zugriff auf ObjectContext
83
Code-First SQL ausführen
Aber: SqlQuery hat Mühe mit ComplexType
84
Code-First EDMX-Datei erstellen
85
Code-First Read-Only Eigenschaft in Datenbank speichern
86
Code-First Änderungen Rückgängig machen
87
Code-First Zugriff auf Cache
88
Code-First Indizes erstellen
89
Zusammenfassung Links
Huagati DBML/EDMX Tools ADO.NET Entity Data Model Designer Extension Starter Kit Entity Designer Database Generation Power Pack ADO.NET Team Blog Entity Framework Design Blog Meine Erfahrungen mit EF EF-FAQ
90
Zusammenfassung Buch-Empfehlungen
ISBN-13: ISBN-13:
91
Q&A
92
3/28/2017 8:10 PM © 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. © 2010 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.
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.