Skip to main content
A newer version of this page is available. .
All docs
V21.2

Queryable Mode

  • 2 minutes to read

Mode Overview

The Queryable mode is the default mode in root and lookup List Views in ASP.NET Core Blazor applications. The collection source exposes an IQueryable<T> query shaped according to settings specified in a List View. In this mode, a List Editor does not load all objects immediately. The List Editor control extends the query to load only the objects visible in the control. After that, the editor iterates the query and loads objects from the database.

Note that the default data access mode for nested List Views in ASP.NET Core Blazor applications is Client. The global IModelOptions.DataAccessMode option (in the Model Editor‘s Options node) does not change the data access mode for nested List Views. To set the Queryable mode for a nested List View, invoke the Model Editor, navigate to the nested List View node, and set its IModelListView.DataAccessMode property to Queryable.

Expected Behavior

  • Only GridListEditor supports this mode.
  • In this mode, List Views do not show custom persistent properties (IsCalculated = false) created in the Model Editor and the CustomizeTypesInfo method.
  • This mode does not support the filter, sort, and group operations with the following properties:
    • Custom properties added at runtime.
    • Non-persistent properties that are not decorated with the PersistentAlias (XPO).
    • Non-persistent properties in EF and EF Core.
  • In nested List Views, a List Editor creates a new collection from a query and uses it instead of the original collection. As a result, custom logic implemented in an original collection’s getter and event handlers is not executed.
  • This mode does not support legacy databases that use compound primary keys.
  • Data-aware operations (such as grouping or sorting) are performed by the database server. This significantly increases the List View’s performance when you need to process a large number of objects. All properties are calculated when it is required (for example, if a property is visible in the List View or is used in the Appearance and Security rules).