Насколько я понимаю, это именно то, для чего нужны глобальные фильтры. В вашем DbContext вы должны указать, какие таблицы имеют флаг IsEnabled, и он будет автоматически применен.
https://entityframeworkcore.com/querying-data-global-filter
public class MyContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Data Source=(localdb)\ProjectsV13;Initial Catalog=CustomerDB;");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Customer>().HasQueryFilter(c => !c.IsDeleted);
}
}
Если у вас есть любые запросы, которые не требуют применения глобального фильтра, можно использовать IgnoreQueryFilters () для вашего запроса.
using (var context = new MyContext())
{
var customers = context.Customers
.IgnoreQueryFilters().ToList();
}