یکی از قابلیت های پرکاربردی که به EF Core اضافه شده ، قابلیت Global Query Filters هست.
قطعا در پیاده سازی پروژه ها با مواردی روبرو شدیم که Entity ما مثلا دارای پراپرتی با نام Deleted هست که بصورت Soft Delete ما اون رکورد رو از دیتابیس حذف میکنینم (رکورد در دیتابیس باقی میمونه ولی صرفا درصورت true بودن مقدار این پراپرتی ، پاک شده در نظر گرفته میشه )
بطور کلی رکوردهای این چنینی نباید به end-user نمایش داده بشن.
یک حالتی که میشه این مورد رو مدیریت کرد این هست که در تمام کوئری هایی که مینویسیم شرط !Deleted رو لحاظ کنیم تا رکوردهای دارای این شرط در واکشی داده ها نیان.
myDbContext.Books.Where(x=> !x.Deleted);
راه دیگه استفاده از قابلیت Global Query Filters ها در EF Core هست که به ما این امکان رو میده شروطی رو در زمان تعریف metadata مدل تعریف کنیم تا بصورت خودکار در زمان واکشی اطلاعات مربوط به این entity به query ما اضافه بشن.
در این ویدئو این مورد رو با یک مثال براتون توضیح دادم .
مطلب جالبی بود ممنون