Sobes.tech
Junior

Mis on Entity Framework?

sobes.tech AI

Vastus AI-lt

Entity Framework (EF) on objekt-relatsiooniline kiirendaja (ORM) .NET jaoks, mis võimaldab arendajatel töötada andmebaasidega, kasutades .NET objekte, mitte kirjutades suure osa andmejuurdepääsukoodist. See teisendab LINQ-päringud SQL-ks ja tagasi.

Peamised komponendid ja võimalused:

  • DbContext: esindab sessiooni andmebaasiga töötamiseks, sisaldab DbSet-e entiteetide jaoks.
  • DbSet: esindab konkreetse tüüpi entiteetide kogumit kontekstis.
  • LINQ to Entities: võimaldab kirjutada päringuid andmebaasile LINQ-süntaksit kasutades.
  • Migreerimised (Code-First Migrations): võimaldavad hallata andmebaasi skeemi muudatusi andmemudeli arenguga.
  • Muudatuste jälgimine: EF jälgib automaatselt tehtud muudatusi andmebaasist laaditud entiteetides ning genereerib vastavad SQL-käsud nende muudatuste salvestamiseks.

Toetatud arenduslähenemised:

  • Code-First: määratlege andmemudel C#-koodis ja genereerige selle põhjal andmebaasi skeem.
  • Database-First: looge .NET-mudel olemasolevast andmebaasist.
  • Model-First: looge graafiline mudel EF disaineris ning genereerige nii kood kui ka andmebaasi skeem. (Vähem levinud EF Core-s)

Eelised:

  • Arenduse kiirendamine andmetele juurdepääsu üksikasjadest sõltumatult.
  • Tugev tüübikontroll ja kontrollaeg.
  • Mugav andmemudeli ja selle muudatuste haldamine.

Näide EF Core kasutamisest (Code-First paradigma):

// Andmemudeli määratlus
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; }
}

// Andmebaasi konteksti määratlus
public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // SQLite konfiguratsiooni näide
        optionsBuilder.UseSqlite("Data Source=blogging.db");
    }
}

// Kasutamise näide koodis
// using (var context = new BloggingContext())
// {
//     // Andmete lisamine
//     context.Blogs.Add(new Blog { Url = "http://example.com/blog" });
//     context.SaveChanges();
//
//     // Andmete päring
//     var blog = context.Blogs
//         .OrderBy(b => b.BlogId)
//         .First();
// }

EF Core on mitmekülgne, kerge ja laiendatav Entity Frameworki versioon, mis on soovitatav uutele .NET rakendustele.