🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
MDriven limitations and constraints
This page was created by Wikiadmin on 2026-07-29. Last edited by Wikiadmin on 2026-07-29.

You can use this page to identify documented MDriven constraints when you design database searches, result lists, and client exposure; it is for MDriven Designer users planning a ViewModel search experience.

Search constraints

A Seeker translates OCLps search expressions to SQL so that the database can be searched without instantiating the searched objects in the prototyper.

Constraint What it means Example
Derived attributes are not generally searchable A derived attribute is not persisted in the database, so a seeker cannot search it directly. Simple derivations can work when OCLps can expand the derivation; otherwise, use a persisted attribute for the value that must be searched. If users must find a person by a normalized phone number, store the normalized value in a persisted attribute and search that attribute.
Date criteria must use DateTime Do not pass a date as text when filtering dates because SQL servers encode dates in different formats. p.Registrered>=vAfterDate)->orderBy(p|p.Registrered).
Multiple search expressions run in sequence The multivariable seeker uses a waterfall model: it tries the available search expressions in sequence and stops when it finds a result. A value entered as 1234 can first be tested as one criterion and then as the next available criterion when the first one returns no result.

See Training:Seeker view for date variables, result types, and ordering expressions.

Result-size and paging constraints

Use the MaxFetch tagged value to control the maximum number of records returned. Without MaxFetch, the default is 20 records.

A partial result set is not the complete database result. For example, if a search finds more than 1,000 people named Adam but displays only 100, sorting those 100 rows by last name does not produce the first 100 last names from all matching people. Rerun the search in the database with the requested ordering.

Paging is available for a multivariable seeker when the required paging variables are defined. The generated paging user interface is currently available in the WPF client and Angular-Turnkey client. The grid that handles the results must have IsSeekerResultGrid=true on its nesting.

Read Documentation:Search result pages for paging variables and tables, search, and ordering for the distinction between searching, filtering, and ordering.

Client exposure trade-off

Rich client functionality places parts of an application close to the user. A user can attempt to reverse a client application, inspect intellectual property, or mock application calls to the server. Browser-based applications also execute JavaScript locally and can expose knowledge needed to imitate expected client behavior.

Evaluate this exposure when you choose how much functionality to place near the user. See Documentation:High or low exposure to risk for the security trade-off.

See also