# LINGYUN.Abp.Dynamic.Queryable.Application Dynamic query application service module, providing dynamic query functionality implementation based on the ABP framework. ## Features * Provides dynamic query application service base class `DynamicQueryableAppService` * Automatically generates available field list with localization support * Supports field filtering and ignoring * Supports enum type option list generation ## Configuration and Usage 1. Install the `LINGYUN.Abp.Dynamic.Queryable.Application` NuGet package 2. Add `[DependsOn(typeof(AbpDynamicQueryableApplicationModule))]` to your module class 3. Configure options (optional) ```csharp Configure(options => { // Add fields to ignore options.IgnoreFields.Add("FieldName"); }); ``` ### Implementing Dynamic Query Service ```csharp public class MyEntityAppService : DynamicQueryableAppService { private readonly IRepository _repository; public MyEntityAppService(IRepository repository) { _repository = repository; } protected override async Task GetCountAsync(Expression> condition) { return await _repository.CountAsync(condition); } protected override async Task> GetListAsync( Expression> condition, GetListByDynamicQueryableInput dynamicInput) { return await _repository .Where(condition) .PageBy(dynamicInput.SkipCount, dynamicInput.MaxResultCount) .ToListAsync(); } protected override List MapToEntitiesDto(List entities) { return ObjectMapper.Map, List>(entities); } // Custom fields to ignore (optional) protected override IEnumerable GetUserDefineIgnoreFields() { return new[] { "CustomField" }; } } ``` ### Configuration Options * `IgnoreFields` - List of fields to ignore in queries * Defaults include: Id, TenantId, IsDeleted, DeleterId, DeletionTime and other audit fields ## Related Links * [LINGYUN.Linq.Dynamic.Queryable](../LINGYUN.Linq.Dynamic.Queryable/README.EN.md) * [LINGYUN.Abp.Dynamic.Queryable.Application.Contracts](../LINGYUN.Abp.Dynamic.Queryable.Application.Contracts/README.EN.md)