Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Entity Framework Tipps und Tricks

Ähnliche Präsentationen


Präsentation zum Thema: "Entity Framework Tipps und Tricks"—  Präsentation transkript:

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.


Herunterladen ppt "Entity Framework Tipps und Tricks"

Ähnliche Präsentationen


Google-Anzeigen