Junior
Entity Framework чист?
sobes.tech AI
Ҷавоб аз AI
Entity Framework (EF) — инҷо объектӣ-реалийӣ акселератор (ORM) барои .NET аст, ки имкон медиҳад, ки таҳиягарон бо базаҳои додаҳо кор кунанд, бо истифода аз объектҳои .NET, на навиштани қисми зиёди коди дастрасӣ ба додаҳо. Он дархостҳои LINQ-ро ба SQL ва баръакс табдил медиҳад.
Компонентҳо ва имкониятҳои асосӣ:
- DbContext: Намояндаи сессияи кор бо базаи додаҳо, ки DbSet-ҳоро барои сутунҳо дар бар мегирад.
- DbSet: Намояндаи маҷмӯи сутунҳо дар контекст.
- LINQ to Entities: Имкон медиҳад, ки дархостҳоро бо истифода аз синтаксиси LINQ нависед.
- Миграциялар (Code-First Migrations): Имкон медиҳанд, ки тағирот дар схемаи базаи додаҳоро дар вақти рушд идора кунед.
- Таҳлили тағирот: EF автоматӣ тағиротро дар сутунҳо, ки аз базаи додаҳо бор карда шудаанд, пайгирӣ мекунад ва фармонҳои SQL-ро барои нигоҳ доштани тағирот мебарорад.
Равишҳои таҳияшавӣ:
- Code-First: Модели додаҳоро дар коди C# муайян кунед ва схемаро бар асоси он тавлид кунед.
- Database-First: Модели .NET-ро аз базаи додаҳои мавҷуда созед.
- Model-First: Модели графикиро дар дизайнери EF созед ва ҳам коди онро, ҳам схемаро тавлид кунед. (Камтар дар EF Core истифода мешавад)
Арзишҳо:
- Тезтар кардани таҳия бо истифода аз абстраксия аз ҷузъиёти дастрасӣ ба додаҳо.
- Таҳлили қавии намудҳо ва санҷиши он дар марҳилаи компилятсия.
- Идоракунии қулайи модели додаҳо ва тағиротҳои он.
Маслиҳат барои истифодаи EF Core (парадигмаи Code-First):
// Муайян кардани модели додаҳо
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; }
}
// Муайян кардани контексти базаи додаҳо
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// Мисоли конфигуратсия барои SQLite
optionsBuilder.UseSqlite("Data Source=blogging.db");
}
}
// Маслиҳат барои истифода дар код
// using (var context = new BloggingContext())
// {
// // Илова кардани маълумот
// context.Blogs.Add(new Blog { Url = "http://example.com/blog" });
// context.SaveChanges();
//
// // Савол додани маълумот
// var blog = context.Blogs
// .OrderBy(b => b.BlogId)
// .First();
// }
EF Core — версияи кроссплатформӣ, сабук ва васеъшаванда аст, ки барои барномаҳои навтарини .NET тавсия дода мешавад.