---
id: post/demiliani-com/15968
type: post
title: "Dynamics 365 Business Central: AL Query objects and the new ReadState property."
summary: AL query objects now support the ReadState property in Dynamics 365 Business Central 2026 Wave 2 to control transaction isolation levels. This lets developers choose between ReadUncommitted (fast, unreliable), ReadCommitted (safe middle ground), ReadShared (stable until transaction end), and ReadExclusive (prevents other changes) based on whether the query displays data or drives business decisions.
tier: community
language: en
tags:
  - al query objects
  - transaction isolation
  - readstate property
  - data access
  - locking behavior
  - performance
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-07T23:46:22.313Z"
  flags: []
generated:
  at: "2026-10-07T22:42:12.892Z"
  pipeline: 0.2.0
  prompts:
    extract-post: 1
  input_hash: be547f09e3ae5ab42179a6937a8a55c6757c475f1fb673e1cddc99c7214eaba1
evidence:
  - kind: blog
    url: https://demiliani.com/2026/09/24/dynamics-365-business-central-al-query-objects-and-the-new-readstate-property/
    title: "Dynamics 365 Business Central: AL Query objects and the new ReadState property."
    date: "2026-09-24"
    commit: null
    t: null
    quote: null
  - kind: blog
    url: https://demiliani.com/2026/09/24/dynamics-365-business-central-al-query-objects-and-the-new-readstate-property/
    title: "Dynamics 365 Business Central: AL Query objects and the new ReadState property."
    date: "2026-09-24"
    commit: null
    t: null
    quote: The ReadState property takes precedence, so it is the only lever that matters for them.
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
post_id: "15968"
source_id: demiliani-com
source_name: Stefano Demiliani
url: https://demiliani.com/2026/09/24/dynamics-365-business-central-al-query-objects-and-the-new-readstate-property/
published_at: "2026-09-24T10:05:09.000Z"
author: Stefano Demiliani
full_text: false
words: 937
quotes:
  - text: The ReadState property takes precedence, so it is the only lever that matters for them.
    why_it_matters: Clarifies that ReadState overrides CurrentTransactionType for queries, making it the definitive control for transaction isolation.
code_objects_mentioned: []
systems:
  - development
  - platform
versions_mentioned:
  - 2026 Wave 2
  - version 29
  - runtime 18
preview:
  embeddable: true
  frame_url: https://demiliani.com/2026/09/24/dynamics-365-business-central-al-query-objects-and-the-new-readstate-property/embed/
  image: https://demiliani.com/wp-content/uploads/2026/09/alqueryreadstate_01.png
  image_alt: null
  image_w: 626
  image_h: 499
  site_name: Stefano Demiliani
  favicon: https://demiliani.com/wp-content/uploads/2022/09/sd_wordpress_logo.png?w=32
  probed_at: "2026-10-07T11:50:03.978Z"
---

# Dynamics 365 Business Central: AL Query objects and the new ReadState property.

[Read the post](https://demiliani.com/2026/09/24/dynamics-365-business-central-al-query-objects-and-the-new-readstate-property/) · Stefano Demiliani (Stefano Demiliani, MVP) · 2026-09-24 · 937 words · tier community · reviewed (checked by Opus)

> AL query objects now support the ReadState property in Dynamics 365 Business Central 2026 Wave 2 to control transaction isolation levels. This lets developers choose between ReadUncommitted (fast, unreliable), ReadCommitted (safe middle ground), ReadShared (stable until transaction end), and ReadExclusive (prevents other changes) based on whether the query displays data or drives business decisions.

## Key points

- Query objects describe result sets by declaring tables as data items and choosing columns, supporting filtering, grouping, and aggregation.
- ReadState property lets developers specify transaction isolation levels for individual queries, overriding CurrentTransactionType.
- Four isolation levels available: ReadUncommitted (default, fast but risky), ReadCommitted (sees only committed data), ReadShared (adds locks until transaction ends), and ReadExclusive (prevents others from changing rows).
- Strictest lock wins across multiple reads of the same row; stricter reads are safer but cause more waiting for other sessions.
- Display queries can use ReadUncommitted, but decision-driven and modification queries need ReadCommitted or stricter options.

## Quotes

- "The ReadState property takes precedence, so it is the only lever that matters for them." (Clarifies that ReadState overrides CurrentTransactionType for queries, making it the definitive control for transaction isolation.)

## Context

- Features: ReadState property, transaction isolation levels, ReadUncommitted, ReadCommitted, ReadShared, ReadExclusive, query locking, OData endpoints
- Versions: 2026 Wave 2, version 29, runtime 18

Source: Stefano Demiliani, community blog. Summary, key points and quotes are derived (CONTENT-NOTICE.md); read the original for the full text.
