مشخصات مقاله
-
673
-
0.0
-
5054
-
0
-
0
آموزش DbContext در EF Core
آموزش ساخت مدل برای یک Database در Entity Framework Core
آموزش ساخت مدل برای یک Database در Entity Framework Core
کلاس DbContext نقشی اساسی در Entity Framework دارد. یک instance از DbContext نشاندهنده یک session با دیتابیس است که برای query زدن و ذخیره instance های entity های موجود در دیتابیس استفاده می شود. DbContext ترکیبی از Unit Of Work و Repository pattern است.
DbContext در EF Core به ما امکان انجام کارهای زیر را می دهد:
- مدیریت ارتباط با دیتابیس
- Config مدل و ارتباط ها
- Query زدن روی دیتابیس
- ذخیره دیتا در دیتابیس
- Config کردن change tracking
- Caching
- مدیریت Transaction ها
برای استفاده از DbContext در برنامه مان، باید کلاسی داشته باشیم که از DbContext ارث بری کند. این context class معمولا حاوی DbSet< TEntity>property هایی برای هر مدل است. مثال زیر از یک context class در EF Core را در نظر بگیرید:
public class SchoolContext : DbContext
{
public SchoolContext()
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
}
//entities
public DbSet< Student > Students { get; set; }
public DbSet< Course > Courses { get; set; }
}
در مثال بالا، کلاس SchoolContext از DbContext ارث بری کرده و DbSet< TEntity> property هایی از نوع Student و Course دارد. همچنین متدهای OnConfiguring و OnModelCreating را override می کند. باید یک instance از SchoolContext بسازیم تا بتوانیم به دیتابیس وصل شویم . دیتای مربوط به Student یا Course را ذخیره و بازیابی کنیم.
متد OnConfiguring() امکان انتخاب و config کردن data source مورد استفاده با context را با استفاده از DbContextOptionsBuilder می دهد.
متد OnModelCreating() امکان config کردن مدل با استفاده از ModelBuilderFluent API می دهد.
SaveChanges() به دیتابیس insert می شود.SaveChanges() به دیتابیس insert می شود.SaveChanges() به دیتابیس insert می شوند.SaveChanges() به دیتابیس insert می شوند.SaveChanges() پاک می کند.SaveChanges() ، در یک round trip به دیتابیس پاک می کند.SaveChanges() را صورت async اجرا می کند DbSet< TEntity> می سازد که برای query زدن و ذخیره instance های TEntity استفاده می شود.SaveChanges() ذخیره می شود.SaveChanges() ذخیره می شود.DbSet< TEntity> property ها تعریف کرده اید، استفاده کنید.در بخش بعد مراحل ساخت یک EF Core console application ساده آموزش می دهیم.