Sobes.tech
Junior

Was ist Entity Framework?

sobes.tech KI

Antwort von AI

Entity Framework (EF) ist ein objekt-relationale Beschleuniger (ORM) für .NET, der es Entwicklern ermöglicht, mit Datenbanken zu arbeiten, indem sie .NET-Objekte verwenden, anstatt den Großteil des Datenzugriffscodes zu schreiben. Es wandelt LINQ-Anfragen in SQL und umgekehrt um.

Hauptkomponenten und Funktionen:

  • DbContext: Repräsentiert eine Arbeitssitzung mit der Datenbank, enthält DbSet für Entitäten.
  • DbSet: Repräsentiert eine Sammlung von Entitäten eines bestimmten Typs im Kontext.
  • LINQ to Entities: Ermöglicht das Schreiben von Datenbankabfragen mit LINQ-Syntax.
  • Migrationen (Code-First Migrations): Ermöglichen die Verwaltung von Änderungen am Datenbankschema, während sich das Datenmodell im Code weiterentwickelt.
  • Änderungsverfolgung: EF verfolgt automatisch Änderungen an den geladenen Entitäten aus der Datenbank und generiert die entsprechenden SQL-Befehle, um diese Änderungen zu speichern.

Unterstützte Entwicklungsansätze:

  • Code-First: Definition des Datenmodells im C#-Code und Generierung des Datenbankschemas basierend darauf.
  • Database-First: Erstellung des .NET-Modells aus einer bestehenden Datenbank.
  • Model-First: Erstellung eines grafischen Modells im EF-Designer und Generierung sowohl des Codes als auch des Datenbankschemas. (Weniger verbreitet in EF Core)

Vorteile:

  • Beschleunigung der Entwicklung durch Abstraktion der Details des Datenzugriffs.
  • Starke Typisierung und Überprüfung zur Compile-Zeit.
  • Bequeme Verwaltung des Datenmodells und seiner Änderungen.

Beispiel für die Verwendung von EF Core (Code-First-Paradigma):

// Definition des Datenmodells
public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
    public List<Post> Posts { get; set; }
}

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
    public int BlogId { get; set; }
    public Blog Blog { get; set; }
}

// Definition des Datenbankkontexts
public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // Beispielkonfiguration für SQLite
        optionsBuilder.UseSqlite("Data Source=blogging.db");
    }
}

// Beispiel für die Verwendung im Code
// using (var context = new BloggingContext())
// {
//     // Daten hinzufügen
//     context.Blogs.Add(new Blog { Url = "http://example.com/blog" });
//     context.SaveChanges();
//
//     // Daten abfragen
//     var blog = context.Blogs
//         .OrderBy(b => b.BlogId)
//         .First();
// }

EF Core ist eine plattformübergreifende, leichte und erweiterbare Version von Entity Framework, die für neue .NET-Anwendungen empfohlen wird.