Sie sind hier
E-Book

Effizienter Datenzugriff mit Entity Framework Core

Datenbankprogrammierung mit C# für .NET Framework, .NET Core und Xamarin

AutorHolger Schwichtenberg
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2018
Seitenanzahl468 Seiten
ISBN9783446449787
FormatPDF/ePUB
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis41,99 EUR

Schnell und einfach auf Daten zugreifen mit Entity Framework Core
Dieses Buch zeigt Ihnen, wie Sie mit der komplett überarbeiteten Version von Microsofts O/R-Mapper unterschiedliche Datenbanken auf moderne und zeitsparende Art und Weise ansprechen können. Profitieren Sie von höherer Geschwindigkeit, weniger RAM-Bedarf und Plattformunabhängigkeit.
Entity Framework Core-Kenntnisse vertiefen
Das Buch behandelt sowohl die Verwendung bestehender Datenbanken (Reverse Engineering) als auch die Generierung von Datenbankschemata aus Objektmodellen heraus (Forward Engineering).
Neben den Grundlagen lernen Sie auch, wie Sie mit Entity Framework Core
- den Aufwand für die Programmierung von Datenzugriffscode drastisch reduzieren,
- die Performance Ihrer Anwendungen optimieren und
- mobile Apps schreiben können.
Das Buch richtet sich an Softwareentwickler, die bereits grundlegende Erfahrung mit .NET, insbesondere C#, ADO.NET und LINQ, sowie mit relationalen Datenbanken gesammelt haben und nun Entity Framework Core zur Erstellung von Datenzugriffscode einsetzen wollen.

Dr. Holger Schwichtenberg zählt zu Deutschlands bekanntesten Experten für Scripting und professionelle Softwareentwicklung mit Microsoft-Werkzeugen. Im Rahmen des Expertenteams der Firma www.IT-Visions.de schult, berät und unterstützt er Unternehmen jeder Größe. Neben seiner Autorentätigkeit für Fachzeitschriften und heise.de hat er zudem zahlreiche Fachbücher veröffentlicht. Von Microsoft wurde er 19-mal ausgezeichnet als 'Most Valuable Professional'.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
1Einleitung
1.1Programmiersprache in diesem Buch

Als Programmiersprache kommt in diesem Buch C# zum Einsatz, weil dies die bei weitem am häufigsten verwendete Programmiersprache in .NET ist. Der Autor dieses Buchs programmiert in einigen Kundenprojekten .NET-Anwendungen zwar auch in Visual Basic .NET, leider bietet dieses Buch jedoch nicht den Raum, alle Listings in beiden Sprachen wiederzugeben.

Eine Sprachkonvertierung zwischen C# und Visual Basic .NET ist im WWW kostenfrei verfügbar auf der Website http://converter.telerik.com.

1.2Fallbeispiele in diesem Buch

Die meisten Beispielprogrammcodes in diesem Buch drehen sich um das Fallbeispiel der fiktiven Fluggesellschaft „World Wide Wings“, abgekürzt WWWings (siehe auch www.world-wide-wings.de).

Bild 1.1 Logo der fiktiven Fluggesellschaft „World Wide Wings“

HINWEIS: In einzeln Unterkapitel werden andere Fallbeispiele verwendet (z. B. die Aufgabenverwaltung „MiracleList“). Diese Fallbeispiele werden dann in den jeweiligen Kapiteln erläutert.

1.2.1Entitäten

Im Anwendungsfall „World Wide Wings“ geht es um folgende Entitäten:

  • Flüge zwischen zwei Orten, bei denen die Orte bewusst nicht als eigene Entität modelliert wurden, sondern Zeichenketten sind (dies vereinfacht das Verständnis vieler Beispiele)

  • Passagiere, die auf Flügen fliegen

  • Mitarbeiter der Fluggesellschaft, die wiederum Vorgesetzte haben, die auch Mitarbeiter sind

  • Piloten als eine Spezialisierung von Mitarbeitern

  • Personen als Sammlung der gemeinsamen Eigenschaften für alle Menschen in diesem Beispiel. Personen gibt es aber nicht eigenständig, sondern nur in den Ausprägungen/Spezialisierungen Passagier, Mitarbeiter und Pilot. Im objektorientierten Sinne ist Person also eine abstrakte Basisklasse, die keine Instanzen besitzen kann, sondern nur der Vererbung dient.

Es gibt zwei Datenmodelle:

  • Das etwas einfachere Modell #1 ist das Ergebnis klassischen relationalen Datenbankdesigns mit Normalisierung. Das Objektmodell daraus entsteht per Reverse Engineering.

  • Modell #2 ist das Ergebnis des Forward Engineering mit Entity Framework Core aus einem Objektmodell. Zusätzlich gibt es hier weitere Entitäten (Persondetail, Flugzeugtyp und Flugzeugtypdetail), um weitere Modellierungsaspekte aufzeigen zu können.

In Modell #1 gibt es eine jeweils eigene Tabelle für Personen (auch wenn es keine eigenständigen Personen gibt), Mitarbeiter, Piloten und Passagiere. Diese Aufteilung entspricht den Klassen im Objektmodell.

In Modell #2 gibt es lediglich die Tabellen Passagiere und Mitarbeiter für diese vier Entitäten. Entity Framework Core ist derzeit etwas eingeschränkt und unterstützt das Konzept Table per Type (also eine eigenständige Tabelle für jede Klasse) nicht. Daher umfasst die Tabelle Passagiere auch alle Eigenschaften von Person. Die Tabelle Mitarbeiter umfasst neben den Personeneigenschaften die Eigenschaften der Entitäten Mitarbeiter und Pilot. In der Tabelle wird per Diskriminatorspalte unterschieden zwischen Datensätzen, die ein Mitarbeiter sind, und solchen, die ein Pilot sind. Entity Framework Core mischt hier die Konzepte Table per Concrete Type (TPC) und Table per Hierarchy (TPH). Einen dezidierten Einfluss auf diese Abbildung hat man in Entity Framework Core 1.x/2.0 noch nicht. Das klassische Entity Framework bietet hier mehr Optionen.

Abhängigkeitsarten sind hier:

  • Ein Flug muss einen Piloten besitzen. Der Copilot ist optional.

  • Ein Flug kann optional einen Flugzeutyp zugeordnet haben.

  • Jede Person und damit auch jeder Pilot und Passagier muss ein Persondetail-Objekt besitzen.

In diesem Buch kommen beide Datenmodelle vor, teilweise auch in modifizierter Form, um bestimmte Szenarien (z. B. Datenbankschemamigrationen) aufzuzeigen.

Bitte beachten Sie, dass die Objektmodelle, die in diesem Buch zu den Datenmodellen erstellt werden, nicht das Idealbild eines Objektmodells darstellen können, denn Entity Framework Core unterstützt einige Mapping-Möglichkeiten wie z. B. das N:M-Mapping noch nicht. Das Objektmodell zum einfachen Datenmodell ist das automatisch von Entity Framework Core aus der Datenbank generierte Objektmodell (Reverse Engineering); es ist bewusst nicht verändert worden.

Bild 1.2 World Wide Wings-Datenmodell in der einfacheren Version

Bild 1.3 Objektmodell zum World Wide Wings-Datenmodell in der einfacheren Version

Bild 1.4 World Wide Wings-Datenmodell in der komplexeren Version

Bild 1.5 Objektmodell zum World Wide Wings-Datenmodell in der komplexeren Version

1.3Anwendungsarten in diesem Buch

In diesem Buch erfolgen Bildschirmausgaben meist an der textbasierten Konsole in Konsolenanwendungen, denn dies ermöglicht die Fokussierung auf den Datenbankzugriff. Beim Einsatz von grafischen Benutzeroberflächen wie WPF, Windows Forms, ASP.NET Webforms oder ASP.NET MVC ist die Darstellung durch Datenbindung entkoppelt, das heißt man würde immer ein zweites Listing brauchen, um zu verstehen, dass die Datenzugriffe überhaupt liefern. Eingaben des Benutzers werden in den Konsolenbeispielen durch Variablen zu Beginn des Programmcodes simuliert.

Der Autor dieses Buchs führt seit vielen Jahren Schulungen und Beratungseinsätze im Bereich Datenzugriff durch und hat dabei die Erfahrung gemacht, dass Konsolenausgaben das didaktisch beste Instrument sind, da die Listings sonst sehr umfangreich und damit schlechter zu verstehen sind.

Natürlich ist die Konsolenausgabe in 99 % der Fälle der Softwareentwicklung nicht die gängige Praxis. Grafische Benutzeroberflächen sind Inhalt anderer Bücher, und die Datenbindung hat in der Regel keinen Einfluss auf die Form des Datenzugriffs. Dort, wo der Datenzugriff doch relevant ist, wird dieses Buch auch Datenbindungsbeispiele zeigen.

1.4Hilfsroutinen zur Konsolenausgabe

Für die Bildschirmausgabe an der Konsole wird an mehreren Stellen nicht nur Console.WriteLine() verwendet, sondern auch Hilfsroutinen kommen zur Anwendung, die farbige Bildschirmausgaben erzeugen. Diese Hilfsroutinen in der Klasse CUI aus der ITV_DemoUtil.dll sind hier zum besseren Verständnis abgedruckt:

Listing 1.1 Klasse CUI mit Hilfsroutinen für die Bildschirmausgabe an der Konsole

using System; using System.Runtime.InteropServices; using System.Web; using ITVisions.UI; using System.Diagnostics; namespace ITVisions { /// <summary> /// Hilfsroutinen für Konsolen-UIs /// (C) Dr. Holger Schwichtenberg 2002-2017 /// </summary> public static class CUI { public static bool IsDebug = false; public static bool IsVerbose = false; #region Ausgaben unter bestimmten Bedingungen ///...

Blick ins Buch
Inhaltsverzeichnis
Inhalt7
Vorwort17
Über den Autor19
1 Einleitung21
1.1 Programmiersprache in diesem Buch21
1.2 Fallbeispiele in diesem Buch21
1.2.1 Entitäten22
1.3 Anwendungsarten in diesem Buch25
1.4 Hilfsroutinen zur Konsolenausgabe26
1.5 Programmcodebeispiel zum Download30
2 Was ist Entity Framework Core?33
2.1 Was ist ein Objekt-Relationaler Mapper?33
2.2 ORM in der .NET-Welt35
2.3 Versionsgeschichte von Entity Framework Core36
2.4 Unterstützte Betriebssysteme37
2.5 Unterstützte .NET-Versionen37
2.6 Unterstützte Visual Studio-Versionen38
2.7 Unterstützte Datenbanken39
2.8 Funktionsumfang von Entity Framework Core40
2.9 Funktionen, die dauerhaft entfallen41
2.10 Funktionen, die Microsoft bald nachrüsten will41
2.11 Hohe Priorität, aber nicht kritisch42
2.12 Neue Funktionen in Entity Framework Core43
2.13 Einsatzszenarien44
3 Installation von Entity Framework Core47
3.1 Nuget-Pakete47
3.2 Paketinstallation50
3.3 Aktualisierung auf eine neue Version54
4 Konzepte von Entity Framework Core59
4.1 Vorgehensmodelle bei Entity Framework Core59
4.2 Artefakte bei Entity Framework Core61
5 Reverse Engineering bestehender Datenbanken63
5.1 Reverse Engineering mit PowerShell-Befehlen64
5.2 Codegenerierung67
5.3 .NET Core-Tool74
5.4 Schwächen des Reverse Engineering76
6 Forward Engineering für neue Datenbanken77
6.1 Regeln für die selbsterstellten Entitätsklassen79
6.1.1 Properties79
6.1.2 Datentypen79
6.1.3 Beziehungen (Master-Detail)79
6.1.4 Vererbung81
6.1.5 Primärschlüssel81
6.1.6 Beispiele81
6.2 Regeln für die selbsterstellte Kontextklasse84
6.2.1 Nuget-Pakete84
6.2.2 Basisklasse85
6.2.3 Konstruktor85
6.2.4 Beispiel85
6.2.5 Provider und Verbindungszeichenfolge86
6.2.6 Eigene Verbindungen87
6.2.7 Thread-Sicherheit87
6.3 Regeln für die Datenbankschemagenerierung87
6.4 Beispiel-Client88
6.5 Anpassung per Fluent-API (OnModelCreating())89
6.6 Das erzeugte Datenmodell91
7 Anpassung des Datenbankschemas93
7.1 Persistente versus transiente Klassen94
7.2 Namen im Datenbankschema95
7.3 Reihenfolge der Spalten in einer Tabelle95
7.4 Spaltentypen/Datentypen96
7.5 Pflichtfelder und optionale Felder97
7.6 Feldlängen97
7.7 Primärschlüssel98
7.8 Beziehungen und Fremdschlüssel98
7.9 Optionale Beziehungen und Pflichtbeziehungen99
7.10 Uni- und Bidirektionale Beziehungen101
7.11 1:1-Beziehungen102
7.12 Indexe festlegen103
7.13 Weitere Syntaxoptionen für das Fluent-API105
7.13.1 Sequentielle Konfiguration105
7.13.2 Strukturierung durch Statement Lambdas105
7.13.3 Strukturierung durch Unterroutinen106
7.13.4 Strukturierung durch Konfigurationsklassen107
7.14 Massenkonfiguration mit dem Fluent-API108
8 Datenbankschemamigrationen111
8.1 Anlegen der Datenbank zur Laufzeit111
8.2 Schemamigrationen zur Entwicklungszeit112
8.3 Befehle für die Schemamigrationen112
8.4 ef.exe113
8.5 Add-Migration114
8.6 Update-Database118
8.7 Script-Migration119
8.8 Weitere Migrationsschritte119
8.9 Migrationsszenarien120
8.10 Weitere Möglichkeiten121
8.11 Schemamigrationen zur Laufzeit123
9 Daten lesen mit LINQ125
9.1 Kontextklasse125
9.2 LINQ-Abfragen126
9.3 Schrittweises Zusammensetzung von LINQ-Abfragen128
9.4 Repository-Pattern129
9.5 Einsatz von var130
9.6 LINQ-Abfragen mit Paging131
9.7 Projektionen133
9.8 Abfrage nach Einzelobjekten134
9.9 Laden anhand des Primärschlüssels mit Find()135
9.10 LINQ im RAM statt in der Datenbank135
9.11 Umgehung für das GroupBy-Problem139
9.11.1 Mapping auf Nicht-Entitätstypen139
9.11.2 Entitätsklasse für die Datenbanksicht anlegen140
9.11.3 Einbinden der Entitätsklasse in die Kontextklasse140
9.11.4 Verwendung der Pseudo-Entitätsklasse141
9.11.5 Herausforderung: Migrationen141
9.11.6 Gruppierungen mit Datenbanksichten143
9.12 Kurzübersicht über die LINQ-Syntax143
9.12.1 Einfache SELECT-Befehle (Alle Datensätze)145
9.12.2 Bedingungen (where)145
9.12.3 Bedingungen mit Mengen (in)146
9.12.4 Sortierungen (orderby)146
9.12.5 Paging (Skip() und Take())147
9.12.6 Projektion147
9.12.7 Aggregatfunktionen (Count(), Min(), Max(), Average(), Sum())148
9.12.8 Gruppierungen (GroupBy)149
9.12.9 Einzelobjekte (SingleOrDefault(), FirstOrDefault())150
9.12.10 Verbundene Objekte (Include())151
9.12.11 Inner Join (Join)152
9.12.12 Cross Join (Kartesisches Produkt)153
9.12.13 Join mit Gruppierung153
9.12.14 Unter-Abfragen (Sub-Select)154
10 Objektbeziehungen und Ladestrategien157
10.1 Standardverhalten157
10.2 Kein Lazy Loading158
10.3 Eager Loading160
10.4 Explizites Nachladen (Explicit Loading)163
10.5 Preloading mit Relationship Fixup165
10.6 Details zum Relationship Fixup170
11 Einfügen, Löschen und Ändern171
11.1 Speichern mit SaveChanges()171
11.2 Änderungsverfolgung auch für Unterobjekte174
11.3 Das Foreach-Problem175
11.4 Objekte hinzufügen mit Add()176
11.5 Verbundene Objekte anlegen178
11.6 Verbundene Objekte ändern/Relationship Fixup181
11.7 Widersprüchliche Beziehungen184
11.8 Zusammenfassen von Befehlen (Batching)189
11.9 Objekte löschen mit Remove()190
11.10 Löschen mit einem Attrappen-Objekt191
11.11 Massenlöschen192
11.12 Datenbanktransaktionen193
11.13 Change Tracker abfragen196
11.13.1 Zustand eines Objekts196
11.13.2 Liste aller geänderten Objekte198
12 Datenänderungskonflikte (Concurrency)201
12.1 Rückblick201
12.2 Im Standard keine Konflikterkennung202
12.3 Optimistisches Sperren/ Konflikterkennung204
12.4 Konflikterkennung für alle Eigenschaften205
12.5 Konflikteinstellung per Konvention206
12.6 Fallweise Konflikteinstellung207
12.7 Zeitstempel (Timestamp)208
12.8 Konflikte auflösen210
12.9 Pessimistisches Sperren bei Entity Framework Core214
13 Protokollierung (Logging)219
13.1 Verwendung der Erweiterungsmethode Log()219
13.2 Implementierung der Log()-Erweiterungsmethode221
13.3 Protokollierungskategorien224
14 Asynchrone Programmierung225
14.1 Asynchrone Erweiterungsmethoden225
14.2 ToListAsync()225
14.3 SaveChangesAsync()227
14.4 ForeachAsync()228
15 Dynamische LINQ-Abfragen231
15.1 Schrittweises Zusammensetzen von LINQ-Abfragen231
15.2 Expression Trees233
15.3 Dynamic LINQ236
16 Daten lesen und ändern mit SQL, Stored Procedures und Table Valued Functions239
16.1 Abfragen mit FromSql()239
16.2 Zusammensetzbarkeit von LINQ und SQL241
16.3 Globale Abfragefilter bei SQL-Abfragen (ab Version 2.0)243
16.4 Stored Procedures und Table Valued Functions244
16.5 Globale Abfragefilter bei Stored Procedures und Table Valued Functions245
16.6 Nicht-Entitätsklassen als Ergebnismenge246
16.7 SQL-DML-Befehle ohne Resultset248
17 Weitere Tipps und Tricks zum Mapping249
17.1 Shadow Properties249
17.1.1 Automatische Shadow Properties249
17.1.2 Festlegung eines Shadow Property250
17.1.3 Ausgabe aller Shadow Properties einer Entitätsklasse250
17.1.4 Lesen und Ändern eines Shadow Property251
17.1.5 LINQ-Abfragen mit Shadow Properties252
17.1.6 Praxisbeispiel: Automatisches Setzen des Shadow Property bei jedem Speichern252
17.2 Tabellenaufteilung (Table Splitting)253
17.3 Berechnete Spalten (Computed Columns)256
17.3.1 Automatisches SELECT257
17.3.2 Praxistipp: Spalten mit einer Berechnungsformel anlegen257
17.3.3 Spalten mit einer Berechnungsformel nutzen259
17.3.4 Spalten mit einer Berechnungsformel beim Reverse Engineering261
17.4 Standardwerte (Default Values)262
17.4.1 Standardwerte beim Forward Engineering festlegen262
17.4.2 Standardwerte verwenden263
17.4.3 Praxistipp: Standardwerte schon beim Anlegen des Objekts vergeben265
17.4.4 Standardwerte beim Reverse Engineering266
17.5 Sequenzobjekte (Sequences)267
17.5.1 Erstellen von Sequenzen beim Forward Engineering267
17.5.2 Sequenzen im Einsatz268
17.6 Alternative Schlüssel271
17.6.1 Alternative Schlüssel definieren272
17.6.2 Alternative Schlüssel im Einsatz274
17.7 Kaskadierendes Löschen (Cascading Delete)275
17.8 Abbildung von Datenbanksichten (Views)278
17.8.1 Datenbanksicht anlegen279
17.8.2 Entitätsklasse für die Datenbanksicht anlegen279
17.8.3 Einbinden der Entitätsklasse in die Kontextklasse279
17.8.4 Verwendung der Datenbanksicht280
17.8.5 Herausforderung: Migrationen280
18 Weitere Tipps und Tricks zu LINQ283
18.1 Globale Abfragefilter (ab Version 2.0)283
18.1.1 Filter definieren283
18.1.2 Filter nutzen284
18.1.3 Praxistipp: Filter ignorieren285
18.2 Zukünftige Abfragen (Future Queries)285
19 Leistungsoptimierung (Performance Tuning)287
19.1 Vorgehensmodell zur Leistungsoptimierung bei Entity Framework Core287
19.2 Best Practices für Ihre eigenen Leistungstests288
19.3 Leistungsvergleich verschiedener Dattenzugriffstechniken in .NET288
19.4 Objektzuweisung optimieren290
19.5 Massenoperationen292
19.5.1 Einzellöschen292
19.5.2 Optimierung durch Batching293
19.5.3 Löschen ohne Laden mit Pseudo-Objekten294
19.5.4 Einsatz von klassischem SQL anstelle des Entity Framework Core-APIs295
19.5.5 Lamdba-Ausdrücke für Massenlöschen mit EFPlus297
19.5.6 Massenaktualisierung mit EFPlus298
19.6 Leistungsoptimierung durch No-Tracking299
19.6.1 No-Tracking aktivieren300
19.6.2 No-Tracking fast immer möglich302
19.6.3 No-Tracking im änderbaren Datagrid305
19.6.4 QueryTrackingBehavior und AsTracking()306
19.6.5 Best Practices308
19.7 Auswahl der besten Ladestrategie308
19.8 Zwischenspeicherung (Caching)309
19.8.1 MemoryCache309
19.8.2 Abstraktion CacheManager312
19.9 Second-Level-Caching mit EFPlus316
19.9.1 Einrichten des Second-Level-Cache317
19.9.2 Verwenden des Second-Level-Cache317
20 Softwarearchitektur mit Entity Framework Core321
20.1 Monolithisches Modell321
20.2 Entity Framework Core als Datenzugriffsschicht322
20.3 Reine Geschäftslogik324
20.4 Geschäftsobjekt- und ViewModel-Klassen325
20.5 Verteilte Systeme326
20.6 Fazit329
21 Zusatzwerkzeuge331
21.1 Entity Framework Core Power Tools331
21.1.1 Funktionsüberblick331
21.1.2 Reverse Engineering mit Entity Framework Core Power Tools332
21.1.3 Diagramme mit Entity Framework Core Power Tools336
21.2 LINQPad337
21.2.1 Aufbau von LINQPad338
21.2.2 Datenquellen einbinden339
21.2.3 LINQ-Befehle ausführen342
21.2.4 Speichern345
21.2.5 Weitere LINQPad-Treiber345
21.2.6 Interaktive Programmcodeeingabe346
21.2.7 Fazit zu LINQPad347
21.3 Entity Developer347
21.3.1 Reverse Engineering mit Entity Developer348
21.3.2 Forward Engineering mit Entity Developer359
21.4 Entity Framework Profiler364
21.4.1 Einbinden des Entity Framework Profilers366
21.4.2 Befehle überwachen mit Entity Framework Profiler366
21.4.3 Warnungen vor potenziellen Problemen369
21.4.4 Analysefunktionen369
21.4.5 Fazit zu Entity Framework Profiler370
22 Zusatzkomponenten371
22.1 Entity Framework Plus (EFPlus)371
22.2 Second-Level-Caching mit EFSecondLevelCache.Core372
22.3 Objekt-Objekt-Mapping und AutoMapper372
22.3.1 Objekt-Objekt-Mapping per Reflection374
22.3.2 AutoMapper377
22.3.3 Beispiel378
22.3.4 Abbildungen konfigurieren379
22.3.5 Abbildung ausführen mit Map()380
22.3.6 Abbildungskonventionen381
22.3.7 Profilklassen383
22.3.8 Verbundene Objekte383
22.3.9 Manuelle Abbildungen384
22.3.10 Typkonvertierungen386
22.3.11 Objektmengen388
22.3.12 Vererbung389
22.3.13 Generische Klassen391
22.3.14 Zusatzaktionen vor und nach dem Mapping394
22.3.15 Geschwindigkeit395
22.3.16 Fazit zu AutoMapper396
23 Praxislösungen399
23.1 Entity Framework Core in einer ASP.NET Core-Anwendung399
23.1.1 Das Fallbeispiel “MiracleList“ 37914
23.1.2 Architektur403
23.1.3 Entitätsklassen405
23.1.4 Entity Framework Core-Kontextklasse407
23.1.5 Lebensdauer der Kontextklasse in ASP.NET Core-Anwendungen409
23.1.6 Geschäftslogik410
23.1.7 WebAPI418
23.1.8 Verwendung von Entity Framework Core per Dependency Injection428
23.1.9 Praxistipp: Kontextinstanzpooling (DbContext Pooling)431
23.2 Entity Framework Core in einer Universal Windows Platform App432
23.2.1 Das Fallbeispiel “MiracleList Light“ 41215
23.2.2 Architektur433
23.2.3 Entitätsklassen435
23.2.4 Entity Framework Core-Kontextklasse436
23.2.5 Startcode436
23.2.6 Erzeugte Datenbank437
23.2.7 Datenzugriffscode439
23.2.8 Benutzeroberfläche443
23.3 Entity Framework Core in einer Xamarin-Cross-Platform-App444
23.3.1 Das Fallbeispiel “MiracleList Light“ 42415
23.3.2 Architektur446
23.3.3 Entitätsklassen448
23.3.4 Entity Framework Core-Kontextklasse448
23.3.5 Startcode450
23.3.6 Erzeugte Datenbank450
23.3.7 Datenzugriffscode450
23.3.8 Benutzeroberfläche454
23.4 N:M-Beziehungen zu sich selbst455
24 Quellen im Internet461
Index463
Leere Seite2

Weitere E-Books zum Thema: Netzwerke - Clouds - Datenbanken

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Sichere Netzwerkkommunikation

E-Book Sichere Netzwerkkommunikation
Grundlagen, Protokolle und Architekturen Format: PDF

Netzwerke werden in allen Bereichen der IT eingesetzt, und es gibt zahlreiche Technologien zur sicheren Netzwerkkommunikation. Doch welche der verfügbaren Techniken lassen sich kombinieren und in der…

Microsoft ISA Server 2006

E-Book Microsoft ISA Server 2006
Leitfaden für Installation, Einrichtung und Wartung Format: PDF

Im Januar 2005 ist mein erstes Buch zum Thema ISA Server 2004 erschienen. Die Erstauflage war bereits nach wenigen Monaten ausverkauft, was offensichtlich bedeutet, dass der Bedarf nach Informationen…

Microsoft ISA Server 2006

E-Book Microsoft ISA Server 2006
Leitfaden für Installation, Einrichtung und Wartung Format: PDF

Im Januar 2005 ist mein erstes Buch zum Thema ISA Server 2004 erschienen. Die Erstauflage war bereits nach wenigen Monaten ausverkauft, was offensichtlich bedeutet, dass der Bedarf nach Informationen…

Veritas Storage Foundation®

E-Book Veritas Storage Foundation®
High End-Computing für UNIX, Design und Implementation von Hochverfügbarkeitslösungen mit VxVM und VCS Format: PDF

Hochkonzentrierter und praxisorientierter Kurs zur 'Veritas Storage Foundation': Storage Virtualisierung (Teil 1) erzeugt virtuelle Diskspeicher, die bei Kompatibilität zu ihren physischen…

Veritas Storage Foundation®

E-Book Veritas Storage Foundation®
High End-Computing für UNIX, Design und Implementation von Hochverfügbarkeitslösungen mit VxVM und VCS Format: PDF

Hochkonzentrierter und praxisorientierter Kurs zur 'Veritas Storage Foundation': Storage Virtualisierung (Teil 1) erzeugt virtuelle Diskspeicher, die bei Kompatibilität zu ihren physischen…

Veritas Storage Foundation®

E-Book Veritas Storage Foundation®
High End-Computing für UNIX, Design und Implementation von Hochverfügbarkeitslösungen mit VxVM und VCS Format: PDF

Hochkonzentrierter und praxisorientierter Kurs zur 'Veritas Storage Foundation': Storage Virtualisierung (Teil 1) erzeugt virtuelle Diskspeicher, die bei Kompatibilität zu ihren physischen…

Weitere Zeitschriften

Archiv und Wirtschaft

Archiv und Wirtschaft

"Archiv und Wirtschaft" ist die viermal jährlich erscheinende Verbandszeitschrift der Vereinigung der Wirtschaftsarchivarinnen und Wirtschaftsarchivare e. V. (VdW), in der seit 1967 rund 2.500 ...

bank und markt

bank und markt

Zeitschrift für Banking - die führende Fachzeitschrift für den Markt und Wettbewerb der Finanzdienstleister, erscheint seit 1972 monatlich. Leitthemen Absatz und Akquise im Multichannel ...

care konkret

care konkret

care konkret ist die Wochenzeitung für Entscheider in der Pflege. Ambulant wie stationär. Sie fasst topaktuelle Informationen und Hintergründe aus der Pflegebranche kompakt und kompetent für Sie ...

Die Versicherungspraxis

Die Versicherungspraxis

Behandlung versicherungsrelevanter Themen. Erfahren Sie mehr über den DVS. Der DVS Deutscher Versicherungs-Schutzverband e.V, Bonn, ist der Interessenvertreter der versicherungsnehmenden Wirtschaft. ...

Eishockey NEWS

Eishockey NEWS

Eishockey NEWS bringt alles über die DEL, die DEL2, die Oberliga sowie die Regionalligen und Informationen über die NHL. Dazu ausführliche Statistiken, Hintergrundberichte, Personalities ...

Euphorion

Euphorion

EUPHORION wurde 1894 gegründet und widmet sich als „Zeitschrift für Literaturgeschichte“ dem gesamten Fachgebiet der deutschen Philologie. Mindestens ein Heft pro Jahrgang ist für die ...