I\'ve created an interface to try to do a soft delete, mixing shadow properties and query filters. But it\'s not working.
public interface IDeletableEntity {         
        
What I did was
builder.Model.GetEntityTypes()
           .Where(p => typeof(IDeletableEntity).IsAssignableFrom(p.ClrType))
           .ToList()
            .ForEach(entityType =>
            {
                builder.Entity(entityType.ClrType)
                .HasQueryFilter(ConvertFilterExpression(e => !e.IsDeleted, entityType.ClrType));
            });
 and
 private static LambdaExpression ConvertFilterExpression(
                Expression> filterExpression,
                Type entityType)
    {
        var newParam = Expression.Parameter(entityType);
        var newBody = ReplacingExpressionVisitor.Replace(filterExpression.Parameters.Single(), newParam, filterExpression.Body);
        return Expression.Lambda(newBody, newParam);
    }