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.