Junior
Entity Framework nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Entity Framework (EF) — bu .NET üçün obyekt-əlaqə (ORM) sürətləndiricisidir və inkişaf etdiricilərə məlumat bazaları ilə işləmək imkanı verir, məlumatlara giriş kodunun böyük hissəsini yazmadan. LINQ sorğularını SQL-ə və əksinə çevirir.
Əsas komponentlər və imkanlar:
- DbContext: Məlumat bazası ilə işləmə sessiyasını təmsil edir, entitilər üçün DbSet-ləri daxil edir.
- DbSet: Kontekstdə müəyyən bir növ entitilərin kolleksiyasını təmsil edir.
- LINQ to Entities: LINQ sintaksisi istifadə edərək məlumat bazasına sorğular yazmağa imkan verir.
- Miqrasiya (Code-First Migrations): Məlumat modelinin inkişafı ilə birlikdə məlumat bazasının sxemindəki dəyişiklikləri idarə etməyə imkan verir.
- Dəyişikliklərin izlənməsi: EF avtomatik olaraq yüklənmiş entitilərdə edilən dəyişiklikləri izləyir və bu dəyişiklikləri saxlamaq üçün uyğun SQL əmrlərini yaradır.
Dəstəklənən inkişaf yanaşmaları:
- Code-First: C# kodunda məlumat modelini təyin etmək və ona əsaslanaraq məlumat bazası sxemini yaratmaq.
- Database-First: Mövcud məlumat bazasından .NET modelini yaratmaq.
- Model-First: EF dizaynerində qrafik model yaratmaq və həm kodu, həm də məlumat bazası sxemini yaratmaq. (EF Core-də daha az yayılmış)
Üstünlüklər:
- Məlumatlara girişin detalları ilə məşğul olmadan inkişafı sürətləndirir.
- Güclü tip yoxlaması və tərtib zamanı yoxlama.
- Məlumat modelinin və onun dəyişikliklərinin rahat idarə olunması.
EF Core-un istifadə nümunəsi (Code-First paradigması):
// Məlumat modelinin təyini
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; }
}
// Məlumat bazası kontekstinin təyini
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// SQLite üçün nümunə konfiqurasiya
optionsBuilder.UseSqlite("Data Source=blogging.db");
}
}
// Kodda istifadə nümunəsi
// using (var context = new BloggingContext())
// {
// // Məlumat əlavə etmək
// context.Blogs.Add(new Blog { Url = "http://example.com/blog" });
// context.SaveChanges();
//
// // Məlumat sorğulamaq
// var blog = context.Blogs
// .OrderBy(b => b.BlogId)
// .First();
// }
EF Core çox platformalı, yüngül və genişləndirilə bilən Entity Framework versiyasıdır və yeni .NET tətbiqləri üçün tövsiyə olunur.