Sobes.tech
Junior

Mi az az Entity Framework?

sobes.tech MI

Válasz az MI-től

Entity Framework (EF) egy objektum-relációs gyorsító (ORM) a .NET számára, amely lehetővé teszi a fejlesztők számára, hogy az adatbázisokkal .NET objektumokat használva dolgozzanak, ahelyett, hogy a legtöbb adat-hozzáférési kódot írják. Átalakítja a LINQ lekérdezéseket SQL-re és fordítva.

Fő összetevők és funkciók:

  • DbContext: Egy munkamenetet képvisel az adatbázissal, tartalmazza a DbSet-eket az entitásokhoz.
  • DbSet: Egy adott típusú entitások gyűjteményét képviseli a kontextusban.
  • LINQ to Entities: Lehetővé teszi az adatbázis lekérdezéseket LINQ szintaxissal.
  • Migrációk (Code-First Migrations): Segítenek az adatbázis séma változásainak kezelésében, ahogy a dátum modellje fejlődik a kódban.
  • Változások követése: Az EF automatikusan követi a betöltött entitásokban végrehajtott változásokat, és generálja a megfelelő SQL parancsokat ezek mentéséhez.

Támogatott fejlesztési megközelítések:

  • Code-First: A dátum modellt a C# kódban definiálja, és ennek alapján generálja az adatbázis sémát.
  • Database-First: Egy meglévő adatbázisból készít .NET modellt.
  • Model-First: Egy grafikus modellt hoz létre az EF tervezőben, és generálja mind a kódot, mind az adatbázis sémát. (Kevésbé elterjedt az EF Core-ban)

Előnyök:

  • Gyorsítja a fejlesztést az adatokhoz való hozzáférés részleteitől való absztrakció révén.
  • Erős típusosság és fordítási időben történő ellenőrzés.
  • Kényelmes kezelése a dátum modellnek és változásainak.

EF Core példája (Code-First paradigma):

// A dátum modell definiálása
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; }
}

// Az adatbázis kontextus definiálása
public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // Példa konfiguráció SQLite-hoz
        optionsBuilder.UseSqlite("Data Source=blogging.db");
    }
}

// Használat a kódban
// using (var context = new BloggingContext())
// {
//     // Adatok hozzáadása
//     context.Blogs.Add(new Blog { Url = "http://example.com/blog" });
//     context.SaveChanges();
//
//     // Adatok lekérdezése
//     var blog = context.Blogs
//         .OrderBy(b => b.BlogId)
//         .First();
// }

Az EF Core egy többplatformos, könnyű és bővíthető verziója az Entity Framework-nek, amelyet új .NET alkalmazásokhoz ajánlott.