آموزش DbContext

کلاس DbContext بخشی جدایی ناپذیر از Entity Framework می باشد و اولین کلاسی بوده که ما در EF Core با آن سر و کار داریم.

آموزش DbContext

کلاس DbContext بخشی جدایی ناپذیر از Entity Framework است و اولین کلاسی می باشد که ما در EF Core با آن سر و کار داریم. نمونه ای از کلاس DbContext یک جلسه با بانک اطلاعاتی را نشان می دهد که می تواند برای جستجو و ذخیره موارد موجود در یک پایگاه داده استفاده شود. DbContext ترکیبی از Unit of Work و الگوی Repository می باشد.

DbContext در حقیقت کلاسی هست که به عنوان یک واحد کاری در اختیار شما قرار می گیرد و به شما امکان

مدیریت Database Connection

پیکربندی Model و Relationship ها

گرفتن Query از دیتابیس

قابلیت Change Tracking

توانایی استفاده از قابلیت کش (Chahing)

و مدیریت تراکنش ها را می دهد.

DbContext

در تصویر بالا، زیر ساخت نگاشت های EF Core را مشاهده می کنید. در سمت چپ، ظرفی را داریم به نام DB Context که در برگیرنده ی DbSet ها است. در سمت راست که بیانگر ساختار کلی یک بانک اطلاعاتی است، معادل این ها را مشاهده می کنیم. هر DbSet به یک جدول بانک اطلاعاتی map خواهد شد و متشکل است از کلاسی به همراه یک سری Property که Property ها نیز به فیلدها و ستون های آن جدول در سمت بانک اطلاعاتی map می شوند.

برای استفاده از DbContext در برنامه، باید یک کلاس ایجاد کنیم که از DbContext مشتق شده است و به کلاس Context معروف است. این کلاس Context به طور معمول شامل پراپرتی های <DbSet <TEntity برای هر Entity موجود در مدل است. هنگام ساختن یک نمونه از کلاس مشتق شده از DbContext، تمامی DbSet ها شناسایی و پردازش می شوند تا Entity ها به جداول بانک اطلاعاتی Map شوند. عملیات Mapping به صورت خودکار انجام می شود که می توان از طریق متد OnModelCreating که یک متد Virtual هست، تغییرات دلخواه در مورد Mapping را اعمال کرد.

نمونه ای از کلاس Context در EF Core

آموزش DbContext

در مثال بالا ، کلاس SchoolContext از کلاس DbContext ارث بری کرده است و حاوی خصوصیات <DbSet<TEntity از نوع Student و Course است. این کلاس همچنین متدهای OnConfiguring و OnModelCreating را بازنویسی کرده است. برای اتصال به پایگاه داده و ذخیره یا بازیابی اطلاعات Student یا Course باید نمونه ای از کلاس SchoolContext ایجاد کنیم.

متد OnConfiguring به ما اجازه می دهد تا منبع داده را با استفاده از DbContextOptionsBuilder انتخاب و پیکربندی کنیم. در این بخش به چگونگی پیکربندی یک کلاس DbContext می پردازیم.

متد OnModelCreating به ما امکان پیکربندی مدل را با استفاده از ModelBuilder Fluent API می دهد.

متدهای DbContext

متد

کاربرد

Add

یک Entity جدید را با وضعیت Added به DbContext اضافه می کند و شروع به ردیابی آن می کند. این entity وقتی متد ()SaveChanges فراخوانی می شود در دیتابیس وارد می شود.

AddAsync

متد ناهمگامی برای اضافه کردن یک موجودیت جدید به DbContext با حالت اضافه شده و ردیابی آن شروع می شود. وقتی فراخوانی ()SaveChangesAsync فراخوانی می شود ، این داده جدید موجود در دیتابیس وارد می شود.

AddRange

یک مجموعه Entity جدید را با وضعیت Added به DbContext اضافه می کند و شروع به ردیابی آن ها می کند. این entity وقتی متد ()SaveChanges فراخوانی می شود در دیتابیس وارد می شود.

AddRangeAsync

یک متد ناهمزمان برای اضافه کردن مجموعه ای از Entity های جدید که هنگام فراخوانی متد ()SaveChangesAsync ذخیره می شوند.

Attach

یک موجود جدید یا از قبل موجود را با وضعیت Unchanged به DbContext وصل کرده و ردیابی آن را شروع می کند.

AttachRange

مجموعه ای از Entity های جدید یا از قبل موجود را با وضعیت Unchanged به DbContext وصل می کند و ردیابی آن ها را شروع می کند.

Entry

یک EntityEntry برای Entity داده شده دریافت می کند. این ورودی امکان ردیابی اطلاعات و عملیاتی برای Entity فراهم می کند.

Find

یک Entity را با مقدار primary key داده شده پیدا می کند.

FindAsync

یک متد ناهمزمان برای پیدا کردن یک Entity با مقدار primary key داده شده.

Remove

وضعیت Deleted را به Entity مشخص شده تنظیم می کند که هنگام فراخوانی متد ()SaveChanges ، داده را حذف می کند.

RemoveRange

وضعیت Deleted را به مجموعه ای از Entity ها تنظیم می کند که هنگام فراخوانی متد ()SaveChanges ، داده ها را در یک گردش دور DB حذف می کنند.

SaveChanges

دستور INSERT ، UPDATE یا DELETE را برای دیتابیس برای Entity هایی با وضعیت Added، Modified یا Deleted اجرا می کند.

Set

یک DbSet <TEntity> ایجاد می کند که می تواند برای جستجو و ذخیره نمونه های Tentity استفاده شود.

Update

Entity با حالت جدا شده را به وضعیت Modified برده و ردیابی آن را شروع می کند. هنگام فراخوانی متد ()SaveChagnes داده ها ذخیره می شوند.

UpdateRange

مجموعه ای از Entity های جدا شده را به وضعیت Modified برده و ردیابی آن ها را شروع می کند. هنگام فراخوانی متد ()SaveChagnes داده ها ذخیره می شوند.

OnConfiguring

این متد را برای پیکربندی دیتابیس بازنویسی کنید. متد onConfiguring برای هر نمونه ای که از context ایجاد می شود صدا زده می شود.

OnModelCreating

این متد را برای پیکربندی بیشتر مدل که از قراردادهای انواع entity های ظاهر شده در پراپرتی DbSet<TEntity> کشف شده بازنویسی کنید.

آموزش Entity framework core 5 آموزش DbContext کلاس DbContext دوره آموزشی Entity Framework Core آموزش EF Core متد OnConfiguring متد OnModelCreating