Guides

Glossary

The words these pages use, in alphabetical order, with what they mean in ARX.SDK.

Terms

Term What it means
Aggregate A value computed over rows: Count, Sum, Avg, Min, Max, optionally per group (query.AggregateInfo); a Count is always a long
Attribute One value of an entity, by column name: account["name"] = "Contoso"
Batch scope One transaction across several calls: RunBatchAsync commits when its body returns, BeginBatchAsync when you call CommitAsync
Business key Columns other than the id that identify one record (an account number, an email), declared with .Key(table, columns…)
Capability Something a provider can do (Joins, TokenPaging, …); service.Capabilities lists them, and a call outside them is ARX8001
Catalog (schema catalog) What you declare about your tables, once, at startup: each table's id column, keys, lookups, version column
Column set The columns a read returns (ArxColumnSet): new ArxColumnSet("name", "email"), or every column. With a catalog the declared id is always read too
Compound key A key of more than one column (region and sku together); declared with .Key(table, "region", "sku")
Connection string The text that tells the driver where the database is and how to sign in; keep it in configuration, not in code
Constraint A rule the database enforces on a table: a unique column, NOT NULL, a CHECK, a foreign key. A write that breaks one is an ARX3xxx error naming it
Criteria The conditions a query's rows must meet (query.Criteria): a filter of conditions joined by AND or OR, which can hold nested filters
Dependency injection Giving a class the objects it needs (an IArxDataService) from outside, registered once at startup (services.AddSingleton<IArxDataService>(…)) instead of created inside it
Entity One record: a table name and its attributes (ArxEntity)
Generated id An id the database (or ARX, on MongoDB) makes on insert: an identity column, a sequence, an ObjectId
Id column The one column that identifies a record, declared per table; ArxIdColumn.NoIdColumn for a table without one
Link entity A join in a query: query.AddLink("contact", "id", "account_id", ArxJoinOperator.Left); its columns read back as row["alias.column"]
Lookup A column that holds the id of a record in another table (a foreign key), read back as an ArxEntityReference
Match How an update or delete finds its rows: by id (the default), a business key, or columns you name (ArxMatch)
Metadata-driven Driven by data about the data: here, the table and column names are strings and the catalog describes the tables, so one piece of code can work on any table
Optimistic concurrency Writes that check the record wasn't changed since it was read, using a version column (.Version(table, column)); a stale write is ARX2004 and nothing is written
Option set Dynamics CRM's name for a column with a fixed list of values; ARX calls it a selection set
Paging cookie An opaque text a page returns, passed back to read the next page (MongoDB, DynamoDB)
Preload Reading the ids, keys and column types of tables from the database once, at startup, to build the catalog (ArxPreLoadTable)
Primary key The database's own declaration of the column (or columns) that identify a row; ARX's id column is usually it
Provider The package for one database (ARX.SDK.PostgreSql, …) and its service
Query expression A read described as data (ArxQueryExpression): the table, column set, criteria, links, order and paging
Record id The id of one record as Create returns it (ArxRecordId): its column and value; also entity.RecordId, and a plain value converts to one (RetrieveAsync("country", "DE"))
Round trip One request to the database and its answer; fewer round trips usually means a faster call
Savepoint A marker inside a transaction a failed call can be rolled back to, so the calls before it are kept; PostgreSQL, SQL Server and MySQL have them
Selection set A fixed list of values a column may hold, with their labels (an option set), declared in the catalog
Service The object that runs the operations against one database (ArxPgDbService, …); create one at startup and share it
Singleton One instance for the whole application: register the service with AddSingleton in dependency injection
Strict mode service.Strict = true on a preloaded service: only the columns the preload read may be used, anything else is ARX1018
Supplied id An id your application gives (a code, a Guid it makes)
Transaction Several writes that are saved together or not at all: an ArxTransaction from a provider's connection, or a batch scope
Version column An integer column ARX keeps for optimistic concurrency: an update with an old version is ARX2004 RecordChanged
XRM Microsoft Dynamics 365's data SDK (Entity, QueryExpression, IOrganizationService), which ARX's entity and query model resembles; the Coming from Dynamics XRM guide compares them