Sobes.tech
Middle

Wie lädt Entity Framework Entitäten in die Datenbank?

sobes.tech KI

Antwort von AI

Entity Framework lädt Entitäten in die Datenbank, indem es SQL-Insert-, Update- oder Delete-Anfragen basierend auf den im Datenkontext nachverfolgten Änderungen erstellt und diese anschließend ausführt.

Der Prozess umfasst:

  1. Änderungsverfolgung: DbContext verfolgt den Zustand jeder Entität (Added, Modified, Deleted, Unchanged).
  2. Befehlsgenerierung: Basierend auf den nachverfolgten Änderungen generiert Entity Framework die entsprechenden SQL-Befehle (INSERT, UPDATE, DELETE).
  3. Befehlsausführung: Die generierten Befehle werden an die Datenbank gesendet und ausgeführt.

Beispiel zum Speichern einer hinzugefügten Entität:

// Erstellen des Datenkontexts
using (var context = new MyDbContext())
{
    // Neue Entität erstellen
    var newUser = new User { Name = "Иван" };

    // Entität zum Kontext hinzufügen
    context.Users.Add(newUser);

    // Änderungen in der Datenbank speichern
    context.SaveChanges();
}

In diesem Beispiel initiiert context.SaveChanges() den Ladevorgang. EF generiert die SQL-Anweisung INSERT INTO Users (Name) VALUES ('Иван'); und führt sie in der Datenbank aus.

Beim Aktualisieren einer Entität:

using (var context = new MyDbContext())
{
    // Entität abrufen
    var userToUpdate = context.Users.Find(1);

    // Eigenschaft ändern
    userToUpdate.Name = "Петр";

    // Änderungen speichern
    context.SaveChanges();
}

Hier initiiert SaveChanges() die Generierung und Ausführung der SQL-Anweisung UPDATE Users SET Name = 'Петр' WHERE Id = 1;.

Beim Löschen einer Entität:

using (var context = new MyDbContext())
{
    // Entität abrufen
    var userToDelete = context.Users.Find(2);

    // Entität aus dem Kontext entfernen
    context.Users.Remove(userToDelete);

    // Änderungen speichern
    context.SaveChanges();
}

SaveChanges() in diesem Fall generiert und führt die SQL-Anweisung DELETE FROM Users WHERE Id = 2; aus.

Entity Framework Core unterstützt auch die Batch-Speicherung, bei der mehrere INSERT-, UPDATE- und DELETE-Operationen in einem oder mehreren Paketen zusammengefasst werden, um eine effizientere Übertragung an die Datenbank zu ermöglichen. Dies hängt vom Datenbankanbieter und dessen Fähigkeiten ab.