Entity Framework Tipps und Tricks

Slides:



Advertisements
Ähnliche Präsentationen
Windows Vista für Entwickler
Advertisements

Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Microsoft Office Information Bridge Framework Jens Häupel.NET Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Uwe Habermann Venelina Jordanova VFX – Silverlight Wizard.
Windows Small Business Server 2008
Hochverfügbarkeit mit { SQL Server 2008 }
Kooperationsmöglichkeiten im Bereich Medienkompetenzförderung Heidelberg, 06.Juni 2011 Jürgen Nilgen Area Sales Lead Germany | Microsoft Learning.
SharePoint 2010 for Information Architects
Video Streaming mit Silverlight
Bitlocker mit Server 2008 in Enterprise Umgebungen
Jean-Claude Trachsel Senior Consultant Trivadis AG.
Roger Boesch Technology Solution Professional - Visual Studio Team System blogs.msdn.com/rogerboesch Microsoft Schweiz GmbH.
Das Model-View-ViewModel-Pattern
René Leupold IS Developer Comgate Solutions AG Entity Framework Ein Überblick.
Version 2008 Team Foundation Version Control (TFVC) … ist eine vollständige Neuentwicklung … wurde für große Teams, die auch weltweit verteilt arbeiten,
Neno Loje Berater & MVP für Visual Studio ALM und TFS (ehemals VSTS) Hochqualitative Produkte mit Visual Studio & TFS 2010.
Windows Server 2008 Server Deployment
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.
ASP.NET 3.5 AJAX Live Coding {mit Visual Studio 2008}
Evolution statt Revolution Willfried Färber MVP SQL Server.
BusinessPerformancePoint Server 2007 Planen, Überwachen, Analysieren
Reiner Ganser Solution Architect 1stQuad Solutions GmbH Presentation Subtitle.
SQL Server 2008 Überblick Steffen Krause Technical Evangelist
Frank Fischer + Bernhard Frank Microsoft Deutschland GmbH.
Steffen Krause Technical Evangelist Microsoft Deutschland GmbH
Scripting mit Windows PowerShell
SQL Azure Administration
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
Windows Server 2008 Terminal Services
Der Moderne Verwaltungsarbeitsplatz Die perfekte Symbiose der neuen Microsoft Technologien mit Ihrer bestehenden IT-Infrastruktur Michael Schäffer
Expression Blend for developers
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Uwe Habermann Venelina Jordanova Professioneller Einstieg in eine neue Welt!
2 VirtualisierungSpeicher Web- und Anwendungsplattform Verwaltung & Automatisierung Virtuelle DesktopinfrastrukturIdentität & ZugriffNetzwerk Mehr als.
Virtual Earth Visualisierung von Geodaten Daniel Walzenbach, Microsoft Deutschland GmbH
Cyber-Security und Datenschutz in der Cloud Wie passt das zusammen?
Intensivmedizin-Applikation mit WPF, WCF und LINQ
SQL Server 2008 { Was ist neu für Entwickler? }
3/31/ :26 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Microsoft Cloud Day Herzlich willkommen!. Microsoft Cloud Day MSDN Veranstaltung Die Cloud Plattform als Erfolgsbaustein – Wie Sie als Softwarefirma von.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Thomas Claudius Huber Senior Consultant Trivadis AG WCF RIA Services Datengetriebene Apps.
…und nun aber zum heutigen Vortrag Die Herausforderung: Krisen und andere Verwerfungen Die Herangehensweise: Kosten senken & Produktivität erhöhen Das.
Mit IT IS enbex Hand in Hand Zeitgemäße Unternehmen sind auf schnellen und sicheren Datenaustausch angewiesen IT IS AG.
Kay Herzam IT Consulting GmbH Webentwicklung mit ASP.NET 4, Ajax und jQuery.
Sprachneuerungen des .NET Frameworks 3.5
Weg mit Fehlern, die kein Entwickler versteht …
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
Arbeiten in einem agilen Team mit VS & TFS 11
? What is Open PS? SAP Open PS based on EPS 4.0
Microsoft Online Services Technischer Überblick (BPOS-S)
© 2012 IBM Corporation © 2013 IBM Corporation IBM Storage Germany Community Josef Weingand Infos / Find me on:
Cubido business solutions gmbh Haidfeldstrasse 33 A-4060 Leonding di(fh) Wolfgang Straßer ° Rundumblick.
Bing SMB Advertisers – Search Ads
Lync and Learn mit Manfred Helber Thema heute:
Workshop 1 Getting Started 2016 Boris Wylutzki
Azure Backup, Azure Backup Server und Azure Site Recovery
Azure Active Directory und Azure Active Directory Domain Services
Erweiterte Azure Dienste
Lync and Learn mit Manfred Helber Thema heute:
Wege in die Cloud: Office 365
oder: Was Licht mit autonomen Fahren zu tun hat
Wachstumsmotor für Ihr Unternehmen: Bing Ads
Michael Korp Technical Evangelist Microsoft Deutschland GmbH
Firmeninternes Softwarelogo
 Präsentation transkript:

Entity Framework Tipps und Tricks René Leupold IS Developer Comgate Solutions AG

.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, 30.5.2011 User Experience Crash Kurs Do, 9.6.2011 DotNetNuke

Agenda Kontext-Laufzeit Abfragen EDM-Designer EF Datenbank-Provider Leistungsoptimierung Code First

Kontext-Laufzeit Web-Anwendungen HttpContext.Current Request Repository ObjectContext (ctx) Repository Repository Repository

Kontext-Laufzeit Smart clients Pro Form GUI Form ctx Form ctx Form ctx Form ctx

Abfragen

Abfragen LINQ to Entities IQueryable<T> Verzögerte Ausführung DB

Abfragen LINQ to Objects IEnumerable<T> Ausführung im RAM

Abfragen Objekte mit vielen Eigenschaften

Abfragen SqlFunctions/EntityFunctions

EDM Designer

EDM Designer Konkurrenzierende Namensrichtlinien Variante 1 Entity Developer (DevArt, edml)

EDM Designer Konkurrenzierende Namensrichtlinien Variante Huagati DBML/EDMX Tools

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

EDM Designer ADO.NET Entity Data Model Designer Extension Starter Kit Projekt aus Vorlage erstellen

EDM Designer ADO.NET Entity Data Model Designer Extension Starter Kit Manifestdatei anpassen

EDM Designer ADO.NET Entity Data Model Designer Extension Starter Kit ModelGenerationExtension.cs mit Logik befüllen

EDM Designer ADO.NET Entity Data Model Designer Extension Starter Kit Nach VS Neustart

Konkurrenzierende Namensrichtlinien Demo Konkurrenzierende Namensrichtlinien

EDM Designer Blob-Eigenschaft nachladen Problem Spalte aus Tabelle nachladen Lösungsvorschlag Blob-Eigenschaft in eigene Entity auslagern 1 : 1 Beziehung modellieren

EDM Designer Blob-Eigenschaft nachladen

EDM Designer Spatial Data Quelle: http://jasonfollas.com

EDM Designer Spatial Data Links Variante mit View (J. Follas) Variante mit View (J. Lerman) Variante mit Trigger ohne View PostGIS and Entity Framework

EDM Designer Eigene Code-Generierungsvorlagen Symbolvorlage erstellen Platzhalter $edmxInputFile$ Vstemplate mit Präfix ADONETArtifactGenerator_ ProjectItem OpenInEditor=„false“ Zippen und ins ItemTemplate-Verzeichnis kopieren

Eigene Code-Generierungsvorlagen Demo Eigene Code-Generierungsvorlagen

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

EDM Designer Eigene DDL-Generierungsvorlagen Model First

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

EDM Designer Model First DDL-Skript als Projektmappe Entity Designer Database Generation Power Pack installieren

EDM Designer Model First DDL-Skript als Projektmappe Datenbankprojekt hinzufügen (Name wie Edmx-Datei)

EDM Designer Model First DDL-Skript als Projektmappe Datenbankprojekt hinzufügen (Name wie Edmx-Datei)

EDM Designer Model First DDL-Skript als Projektmappe Workflow Sync Database Project auswählen

EDM Designer Model First DDL-Skript als Projektmappe Assistent abschliessen

EDM Designer Model First DDL-Skript als Projektmappe

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

EDM Designer Model First/DB First Round trip Änderungen am Modell vornehmen

EDM Designer Model First/DB First Round trip Workflow Sync Database Project ausführen

EDM Designer Model First/DB First Round trip Daten/Neuer Schemavergleich

EDM Designer Model First/DB First Round trip Schemavergleich

EDM Designer Model First/DB First Round trip Änderung an Datenbank vornehmen

EDM Designer Model First/DB First Round trip Modell aus der Datenbank aktualisieren

EDM Designer Model First/DB First Round trip Neues Modell mit Projekt synchronisieren

EDM Designer Huagati DBML/EDMXTools Round trip Änderungen vornehmen

EDM Designer Huagati DBML/EDMXTools Round trip Model Comparer öffnen

EDM Designer Huagati DBML/EDMXTools Round trip Änderungen von CSDL auf SSDL übertragen

EDM Designer Huagati DBML/EDMXTools Round trip Änderungen von SSDL auf Datenbank übertragen

EDM Designer Huagati DBML/EDMXTools Round trip Change-Script

EDM Designer Huagati DBML/EDMXTools Round trip Änderungen von Datenbank übertragen

EDM Designer Huagati DBML/EDMXTools Round trip Model Comparer öffnen

EDM Designer Huagati DBML/EDMXTools Round trip Änderungen von Datenbank auf SSDL übertragen

EDM Designer Huagati DBML/EDMXTools Round trip Änderungen von SSDL auf CSDL übertragen

EDM Designer Huagati DBML/EDMXTools Round trip Modell

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

EDM Designer Erweitern mit benutzerdefinierten Eigenschaften Projekt erstellen und Manifestdatei anpassen

EDM Designer Erweitern mit benutzerdefinierten Eigenschaften Properties.cs und PropertiesFactory.cs mit Logik befüllen

EDM Designer Erweitern mit benutzerdefinierten Eigenschaften Nach der Installation

EDM Designer Erweitern mit benutzerdefinierten Eigenschaften T4-Vorlage erstellen und verwenden

Erweitern mit benutzerdefinierten Eigenschaften Demo Erweitern mit benutzerdefinierten Eigenschaften

EF Datenbank-Provider Am Beispiel MySQL

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

EF Datenbank-Provider Model First MySQL Modell anlegen

EF Datenbank-Provider Model First MySQL DDL Generation Template SSDLToMySQL.tt (VS)

EF Datenbank-Provider Model First MySQL Datenbank erstellen

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

EF Datenbank-Provider Mehrere Datenbank unterstützen Modell anlegen

EF Datenbank-Provider Mehrere Datenbank unterstützen Textdatei für SSDL anlegen

EF Datenbank-Provider Mehrere Datenbank unterstützen Build Action Embedded Resource

EF Datenbank-Provider Mehrere Datenbank unterstützen SSDL-Inhalt von Edmx-Datei kopieren und anpassen

EF Datenbank-Provider Mehrere Datenbank unterstützen Connection String anpassen

EF Datenbank-Provider Mehrere Datenbank unterstützen Datenbankabhängige Herausforderungen MySQL: Schema entspricht Datenbank Oracle: 30 Zeichen-Limit

Leistungsoptimierung

Leistungsoptimierung Profiler Unterstützung SQL Server Profiler EF Prof Hinweise zu Problemen wie SELECT N+1 Huagati Query Profiler EF Tracing Provider

Leistungsoptimierung Kontext-Initialisierung mit View-Generation Kaltstart vermeiden Variante 1: Mit EdmGen.exe erstellen Variante 2. T4 Vorlage Beispiel Modell mit 73 Entitäten

Demo View

Leistungsoptimierung Compiled Query Cachen von Linq to Entities - Abfragen

Leistungsoptimierung NoTracking Wenn keine Änderungsverfolgung notwendig

Leistungsoptimierung Massenmanipulation Nicht die Stärke von ORM

Leistungsoptimierung Span-Queries Laden vieler verbundener Objekte Eager Loading Ressourcenintensiv Lazy Loading Zeitintensiv

Demo Ein Schwachpunkt

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

Code First

Code-First Zugriff auf ObjectContext

Code-First SQL ausführen Aber: SqlQuery hat Mühe mit ComplexType

Code-First EDMX-Datei erstellen

Code-First Read-Only Eigenschaft in Datenbank speichern

Code-First Änderungen Rückgängig machen

Code-First Zugriff auf Cache

Code-First Indizes erstellen

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

Zusammenfassung Buch-Empfehlungen ISBN-13: 978-0596807269 ISBN-13: 978-1430227038

Q&A

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.