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.