public static QueryOptions <T> CreateOptions <T>(this QueryValues queryValues)
     where T : class, new()
 => new QueryOptions <T>()
 .ConfigureCondition(queryValues)
 .ConfigurePaging(queryValues.Paging);
 public static QueryOptions <T> ConfigureCondition <T>(this QueryOptions <T> options, QueryValues values)
     where T : class, new()
 {
     options.ConditionExpression = Operator.Lambda <T, bool>(values.Keys.Join(
                                                                 typeof(T).GetProperties(),
                                                                 key => key,
                                                                 prop => prop.Name,
                                                                 (key, prop) => GenerateCondition(prop.Name, values[key]))
                                                             .Aggregate(Operator.And));
     return(options);
 }