Bulk Update و Bulk Delete در EF Core 7 با استفاد از ExecuteUpdate و ExecuteDelete (بروزرسانی های دسته ای)
به طور پیش فرض، EF Core تغییرات موجودیت ها را Track می کند و پس از فراخوانی یکی از روشهای SaveChanges، بروزرسانی ها را به پایگاه داده ارسال میکند. تغییرات فقط برای ویژگی ها و روابطی ارسال می شوند که در واقع تغییر کرده اند. همچنین موجودیت های track شده یا ردیابی شده با تغییرات ارسال شده به پایگاه داده هماهنگ می مانند. این مکانیزم یک روش کارآمد و راحت برای ارسال درج ها، بروزرسانی ها و حذف های همه منظوره به پایگاه داده است. این تغییرات همچنین برای کاهش تعداد رفت و برگشت های پایگاه داده به صورت دسته ای انجام می شود.
با این حال، گاهی اوقات اجرای برروز رسانی یا حذف دستورات در پایگاه داده بدون دخالت Change Tracker مفید است. EF Core 7 این موضوع را با متد های جدید ExecuteUpdate و ExecuteDelete فعال می کند. این روش ها بر روی یک کوئری LINQ اعمال میشوند و بر اساس نتایج آن کوئری، موجودیت های پایگاه داده را به روزرسانی یا حذف می کنند. بسیاری از موجودیت ها را می توان با یک دستور به روزرسانی کرد و موجودیت ها در حافظه بارگذاری نمی شوند، به این معنی که این امر میتواند منجر به بروزرسانی و حذف کارآمد تر شود.
با این حال، به خاطر داشته باشید که:
- تغییرات خاص برای ایجاد باید به صراحت مشخص شود. آنها به طور خودکار توسط EF Core شناسایی نمی شوند.
- ممکن است لازم باشد دستورات اضافی به ترتیب صحیح ارسال شوند تا محدودیت های پایگاه داده نقض نشود. به عنوان مثال حذف وابستگی های یک موجودیت قبل از حذف آن.
- همه این ها به این معنی است که متدهای ExecuteUpdate و ExecuteDelete مکانیسم SaveChanges موجود را به جای جایگزینی، تکمیل می کنند.
ExecuteDelete و روابط در EF Core 7
همانطور که در بالا ذکر شد، ممکن است لازم باشد قبل از حذف یک موجودیت، نهاد های وابسته به آن را حذف یا بروز کرد. برای مثال، هر پست وابسته به نویسنده مرتبط با آن است. این بدان معنی است که اگر یک نویسنده همچنان به آن ارجاع داده شده باشد، نمی توان آن را حذف کرد. انجام این کار محدودیت کلید خارجی در پایگاه داده را نقض می کند.
سرفصل های آموزش استفاده از ExecuteUpdate و ExecuteDelete در EF Core 7:
- نحوه Bulk Delete یا حذف دسته ای موجودیت ها با استفاده از متد ExecuteDelete در EF Core 7
- نحوه Bulk Update یا بروزرسانی دسته ای موجودیت ها با استفاده از متد ExecuteUpdate در EF Core 7
دریافت سورس پروژه آموزش Bulk Update و Bulk Delete با استفاده از EF Core 7
برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید