Skip to main content
All docs
V25.2
  • Queryable Mode (Database-Level Data Processing)

    • 2 minutes to read

    Queryable Mode Overview

    Queryable mode improves performance when working with large data sets by processing operations like filtering and sorting at the database level rather than loading all data into memory.

    When to Use Database-Level Processing

    Choose Queryable mode in the following scenarios:

    • Large data sets: When working with multiple records where performance is critical
    • Lookup scenarios: For lookup List Views that need to display extensive reference data
    • Memory-constrained environments: When application memory use needs optimization
    • Network optimization: When minimizing data transfer between database and application is important

    Choose Client mode instead when:

    • Working with smaller data sets
    • You need full support for custom properties and complex calculations
    • Advanced query syntaxes like free joins or upcasting are required

    Note

    The default data access mode for lookup, root, and nested List Views in ASP.NET Core Blazor applications is Client.

    How Database-Level Processing Works

    In this mode, the collection source exposes an IQueryable<T> query shaped according to List View settings. The List Editor does not load all objects immediately. Instead, the editor control extends the query to load only objects visible in the control, then iterates the query to load objects from the database.

    Database-level processing is automatically enabled for lookup List Views when the corresponding List View node in the Application Model specifies any data access mode other than Client.

    Supported editors:

    Limitations and Considerations

    When using database-level processing, be aware of these limitations:

    Custom Properties Not Supported

    • Custom persistent properties (IModelMember.IsCalculated = false) created in the Model Editor and CustomizeTypesInfo method are not displayed
    • Custom properties added at runtime
    • Non-persistent properties without PersistentAlias decoration (XPO)
    • Non-persistent properties in EF Core

    Query Limitations

    Database Compatibility

    • Legacy databases with compound primary keys are not supported

    Collection Behavior Changes

    • Queryable collection sources create new collections from queries instead of using original collections
    • Custom logic in original collection getters and event handlers is not executed
    • All properties are calculated on-demand based on visibility and rule requirements