در نسخه 10 از Entity Framework Core (EF Core)، فیلترهای پرسوجوی سراسری به فیلترهای پرسوجوی نامگذاریشده تغییر نام داده شدهاند. این بهروزرسانی یک محدودیت مهم را در EF Core برطرف میکند، یعنی پشتیبانی از چندین فیلتر سراسری در یک موجودیت واحد.
این تغییرات به توسعهدهندگان اجازه میدهد تا الگوهای دسترسی به داده را به طور موثرتری مدیریت کنند. فیلترهای پرسوجوی سراسری، پردیکاتهای LINQ هستند که به مدلهای موجودیت EF Core اعمال میشوند و به طور خودکار به تمام پرسوجوهایی که شامل موجودیتهای مربوطه میشوند، اعمال میشوند. این ویژگی بهویژه در برنامههای چند مستاجر یا سناریوهایی که نیاز به حذف نرم (soft deletion) دارند، مفید است.
در این مقاله، سه موضوع اصلی مورد بررسی قرار میگیرند: فیلترهای پرسوجو برای یک مورد استفاده از حذف نرم، فیلترهای پرسوجو برای یک برنامه چند مستاجر و فیلترهای پرسوجوی نامگذاریشده. حذف نرم یک راهکار برای مواردی است که در آن موجودیتها نمیتوانند به طور کامل از پایگاه داده حذف شوند و باید برای اهداف آماری و تاریخی باقی بمانند. در این روش، یک ستون به نام `is_deleted` به جدول پایگاه داده اضافه میشود و در صورت حذف یک موجودیت، مقدار آن به `true` تنظیم میشود.
کد نمونهای از نحوه پیادهسازی این فیلترها در DbContext ارائه شده است که نشان میدهد چگونه میتوان یک فیلتر سراسری را برای نادیده گرفتن موجودیتهای حذفشده در پرسوجوها تنظیم کرد. این رویکرد به توسعهدهندگان کمک میکند تا دادههای مربوطه را به طور موثرتری مدیریت کنند و از نمایش دادههای حذفشده به کاربران نهایی جلوگیری کنند.
مشاهده مطلب اصلی