I have recently found global filters, which is great because I have been tasked with implementing soft deletes in my applicaiton. Currently I have done this:
// Query filters https://docs.microsoft.com/en-us/ef/core/querying/filters
modelBuilder.Entity<Address>().HasQueryFilter(m => !m.Deleted);
modelBuilder.Entity<Attribute>().HasQueryFilter(m => !m.Deleted);
modelBuilder.Entity<Brand>().HasQueryFilter(m => !m.Deleted);
modelBuilder.Entity<BrandAddress>().HasQueryFilter(m => !m.Deleted);
modelBuilder.Entity<BrandCategory>().HasQueryFilter(m => !m.Deleted);
modelBuilder.Entity<Category>().HasQueryFilter(m => !m.Deleted);
// many more entity types....
All the entities inherit a BaseModel which looks like this:
public class BaseModel
{
public Guid CreatedBy { get; set; }
public Guid UpdatedBy { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateUpdated { get; set; }
public bool Deleted { get; set; }
}
Is it possible to add the query filter for any class that inherits the BaseModel?
Something like:
modelBuilder.Entity<BaseModel>().HasQueryFilter(m => !m.Deleted);
So I don't forget (at a later date) to add the query filter for models I add?