mk-prg-net \net \db \ef6 \code-first \model-creating

EF 6 Code First

Eine Einführung zu Entity Framework findet man hier.

Die Definition eines eines Entitymodells direkt in C# oder VB.NET wird im EntityFramework immer bedeutender. In EntityFramework 7 ist dies momentan die einzige Möglichkeit zur Definition von Entitymodellen.

Implementierung des Modells druch ein Datenbankschema beeinflussen

Erweiterungspunkt für Schemaimplementierung

Code First folgt wendet bei der Abbildung von Entity- Klassen auf Datenbankschemen implizite Regeln an wie:

  1. Entity- Klasse → Tabelle
Dieses Regelwerk kann der Programmierer über eine fluide API erweitern. Der Erweiterungspunkt dazu ist virtual void DbContext.OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder).

Über das Objekt modelBuilder wird die Fluide Api bereitgestellt. Beispiel (KeplerBI.Db):

modelBuilder.Entity()
            .HasKey(r => r.SatelliteId)
            .Ignore(e => e.SemiMajorAxis)
            .Ignore(e => e.MeanVelocityOfCirculation);

Schema festlegen

Die Kontexte von EF- Modellen werden in der Grundeinstellung im Defaultschema dbo auf der Datenbank implementiert. Mittels modelBuilder.HasDefaultSchema(<Name Schema>) kann der Kontext in einem anderen Schema implementiert werden. Ist das Schema noch nicht vorhanden, dann kowird es angelegt.

Beispiel: modelBuilder.HasDefaultSchema("Kepler")

Spezielles

Aktualisierungskonflikte auflösen
Umgang mit Datenkollisionen durch konkurrierende Datenbankzugriffe in EF.
Speedup
Beschleunigung von Abfragen über das EF6.