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

در این آموزش از وبسایت پرووید در رابطه با delete کردن داده ها در Entity Framework Core و در disconnected scenario صحبت خواهیم کرد. در یکی دیگر از آموزش های قبلی در رابطه با درج کردن داده ها در EF Core در disconnected scenario و همچنین update کردن entity ها در Entity Framework Core و در disconnected scenario صحبت کرده بودیم. خب، بحثمان را آغاز می کنیم.

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

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

خب همانطور که ممکن است از دیگر آموزش های وبسایت پرووید در رابطه با Entity Framework Core بدانید، EF Core API به طور خودکار برای تمامی entity هایی که EntityState آنها بر روی مقدار Deleted تنظیم شده است دستور DELETE به سمت دیتابیس ارسال می کند. در delete کردن entity ها هیچ تفاوتی بین connected scenario و disconnected scenario وجود ندارد. این کار باعث می شود که delete کردن entity ها در EF Core بسیار ساده باشد. به منظور انجام این کار می توانید از متدهای زیر که در کلاس های DbContext و DbSet تعریف شده اند استفاده کنید.

کد زیر روش های مختلف delete کردن entity ها در disconnected scenario را نشان می دهد.

// entity to be deleted
var student = new Student() {
        StudentId = 1
};

using (var context = new SchoolContext()) 
{
    context.Remove<Student>(student);
   
    // or the followings are also valid
    // context.RemoveRange(student);
    //context.Students.Remove(student);
    //context.Students.RemoveRange(student);
    //context.Attach<Student>(student).State = EntityState.Deleted;
    //context.Entry<Student>(student).State = EntityState.Deleted;
    
    context.SaveChanges();
}

در مثال بالا، یک entity از نوع student که یک StudentId معتبر نیز دارد با استفاده از متدهای Remove یا RemoveRange از دیتابیس حذف می شود. این کار در زمان صدا زدن متد SaveChanges از کلاس context انجام می پذیرد. در واقع دستور SQL صادر شده به دیتابیس در قسمت زیر نشان داده شده است.

exec sp_executesql N'SET NOCOUNT ON;
DELETE FROM [Students]
WHERE [StudentId] = @p0;
SELECT @@ROWCOUNT;
',N'@p0 int',@p0=1
go

به منظور درک بهتر دستورات SQL توصیه می کنیم از بسته ی آموزش ویدئویی SQL از وبسایت پرووید استفاده کنید. دقت کنید که متدهای DbContext.Remove() و DbContext.RemoveRange() در Entity Framework Core مطرح شدند و در نسخه های قبلی EF وجود نداشتند. انجام عملیات delete با استفاده از این متدها به مراتب ساده تر است. توصیه می کنیم حتماً از بسته ی آموزش ویدئویی Entity Framework Core 2 و Entity Framework Core 1 از وبسایت پرووید استفاده کنید.

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

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

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

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

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