حذف کارآمدتر یک موجودیت از EntityFrameWork
نویسنده: علیرضا آرانی
تاریخ: ۱۴۰۱/۰۹/۰۲ ۱۳:۳۳
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
بهتر است به جای اینکه برای حذف یک entity دو بار دیتابیس را فراخوانی کنیم (یکبار برای بازیابی آن براساس id و یکبار برای اجرای فرمان حذف آن از دیتابیس) توسط کد زیر فقط یکبار به بانک کوئری بزنیم. البته این موضوع برای قبل از EF7 کاربرد دارد. خود EF7 دارای متد ExecuteDeleteAsync می باشد که این مشکل را مرتفع کرده است.
{
try
{
var person = db.Persons.Attach(new Person { Id = id });
person.State = EntityState.Deleted;
await db.SaveChangesAsync(); // 1 database call
}
catch (DbUpdateConcurrencyException e)
{
Console.WriteLine(e);
// will happen if record no longer exists
}
}