ZEXSM / OData.QueryBuilder

OData.QueryBuilder - library for creating complex OData queries (OData version 4.01) based on data models with linq syntax.
MIT License
72 stars 31 forks source link

Фильтр для Expand сущностей не имеет тех же перегрузок, что и основной фильтр #45

Closed Crack123451 closed 3 years ago

Crack123451 commented 3 years ago
_odataQueryBuilder
                .For<DealEntity>(x => x.Deal)
                .ByList()
                .Expand(b =>
                {
                    .Filter // внутренний фильтр
                })
                .Filter((x, f, o) => o.In(x.IdDeal, dealIdList)) //внешний фильтр

Методы для внешнего фильтра:

namespace OData.QueryBuilder.Conventions.Options
{
    public interface IODataOptionList<TEntity> : IODataQuery
    {
        IODataOptionList<TEntity> Filter(Expression<Func<TEntity, bool>> entityFilter, bool useParenthesis = false);
        IODataOptionList<TEntity> Filter(Expression<Func<TEntity, IODataFunction, bool>> entityFilter, bool useParenthesis = false);
        IODataOptionList<TEntity> Filter(Expression<Func<TEntity, IODataFunction, IODataOperator, bool>> entityFilter, bool useParenthesis = false);
    }
}

Методы для внутреннего фильтра:

namespace OData.QueryBuilder.Conventions.Options.Nested
{
    public interface IODataOptionNested<TEntity>
    {
        IODataOptionNested<TEntity> Filter(Expression<Func<TEntity, bool>> entityNestedFilter, bool useParenthesis = false);
    }
}