Sobes.tech
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.