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 |