در این پست از وبسایت پرووید در رابطه با دیلیت کردن داده در دیتابیس با استفاده از EF Core در روش Disconnected Scenario #3 صحبت خواهیم کرد. تکنولوژی Entity Framework Core نسل بعدی Entity Framework است که توسط مایکروسافت معرفی شده است.

در قسمت قبلی از این آموزش در رابطه با delete کردن چندین entity در Entity Framework Core در disconnected scenario صحبت کردیم.

delete کردن related data ها در Entity Framework Core در disconnected scenario

در انجام عملیات delete بر روی entity هایی که با هم relationship های one-to-one و یا one-to-many دارند پیکربندی های متعددی را میتوان لحاظ کرد. این پیکربندی ها یا configuration ها به منظور تنظیم کردن مکانیزم delete شدن related entity ها می باشد. در آموزش رایگان relationship ها در Entity Framework Core از وبسایت پرووید در رابطه با پیاده سازی relationship ها در EF Core صحبت کرده ایم.

بسته ی آموزش ویدئویی نکات طلایی Entity Framework برای برنامه های تجاری سری دوم

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی نکات طلایی Entity Framework  برای برنامه های تجاری سری دوم دیدن کنید.

بیاید بحث را با یک مثال ادامه بدهیم. فرض کنید که دو entity با نام های Student و Grade در برنامه داریم که یک relationship از نوع one-to-many بین آن ها وجود دارد. بر اساس این relationship برای یک GradeId تعداد بیشماری student وجود دارند. اگر اقدام به delete کردن grade ای کنید که برای آن student هایی تعریف شده باشد یک reference integrity error دریافت خواهید کرد. به منظور رفع این مشکل در زمان delete کردن entity هایی که related entity دارند باید با استفاده از Fluent API در Entity Framework Core و در کلاس context یک referential constraint action option تعریف کنید. برای مثال، کد زیر انجام پیکربندی مناسب برای انجام عملیات cascade delete را نشان می دهد.

modelBuilder.Entity<Student>()
    .HasOne<Grade>(s => s.Grade)
    .WithMany(g => g.Students)
    .HasForeignKey(s => s.GradeId)
    .OnDelete(DeleteBehavior.Cascade);

با استفاده از این پیکربندی با حذف یک grade تمامی student های مرتبط با آن نیز به صورت خودکار حذف می شوند. در رابطه با Fluent API و پیکربندهای آن در آموزش رایگان Fluent API صحبت کرده ایم. ضمناً توصیه می کنیم بسته ی آموزش ویدئویی Entity Framework Core 1 را که در آن به صورت مفصل در رابطه با relationship ها و دیگر مباحث صحبت کرده ایم خریداری کنید.

بسته ی آموزش ویدئویی شروع به کار با Entity Framework Core 2.0

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی شروع به کار با Entity Framework Core 2.0 دیدن کنید.

علاوه بر تنظیم کردن cascade delete پیکربندی های دیگری نیز از قبیل SetNull ،ClientSetNull و Restrict وجود دارند که می توانند توسط Fluent API در کلاس context تنظیم شوند.

امیدواریم که این آموزش از وبسایت پرووید نیز مورد توجه تمامی دوستان عزیز قرار گرفته باشد. از شما دعوت می کنیم که از دیگر آموزش های رایگان وبسایت پرووید در زمینه ی Entity Framework Core دیدن کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *