private void SetGlobalQueryFilters(ModelBuilder modelBuilder) { foreach (var tp in modelBuilder.Model.GetEntityTypes()) { var t = tp.ClrType; // set global filters if (typeof(ISoftDelete).IsAssignableFrom(t)) { if (typeof(ITenantEntity).IsAssignableFrom(t)) { // softdeletable and tenant (note do not filter just ITenant - too much filtering! // just top level classes that have ITenantEntity var method = SetGlobalQueryForSoftDeleteAndTenantMethodInfo.MakeGenericMethod(t); method.Invoke(this, new object[] { modelBuilder }); } else { // softdeletable var method = SetGlobalQueryForSoftDeleteMethodInfo.MakeGenericMethod(t); method.Invoke(this, new object[] { modelBuilder }); // } } } } }
private void SetGlobalQueryFilters(ModelBuilder modelBuilder) { foreach (var tp in modelBuilder.Model.GetEntityTypes()) { var t = tp.ClrType; if (typeof(ITenant).IsAssignableFrom(t)) { var method = SetGlobalQueryForSoftDeleteAndTenantMethodInfo.MakeGenericMethod(t); method.Invoke(this, new object[] { modelBuilder }); } } }