At run time, the Telerik ORM converts the commands issued by the domain model (usually via LINQ or low-level API) into back-end database retrieval and SQL statements, effectively taking over the duty of writing time-consuming CRUD operations. OpenAccess also provides several run-time features for customizing the runtime behavior of the tool.
Lazy Data Loading
OpenAccess uses lazy loading on the client where your application objects are filled with the data upon access. Not all fields will be filled immediately, so a collection or picture fields can be deferred in their population. This has the advantage of saving memory and network bandwidth while preserving easy access: when the field's content is needed, the data is fetched transparently from the database server. Of course, you can decide which fields are to be fetched when, and OpenAccess provides sensible defaults.
Run-time Schema Changes
The Schema Change API of Telerik OpenAccess ORM allows you to make runtime changes to the application's object model or database schema without recompilation of the application. This feature also allows for database migration from older versions of Telerik OpenAccess ORM.
Profiling Data Operations in Run-time
The OpenAccess Profiler makes it simple to visualize and summarize the application's data operations in real time. It analyzes and detects programming and coding mistakes, performance drawbacks, and inefficient use of the database. It is also a data tuning advisor, which will show alerts when certain thresholds are reached, and will help you fine-tune the SQL and data performance of your OpenAccess-generated persistence layer.
Adding New Persistent Fields
You can extend the structure of a persistent class by adding new persistent fields during runtime by using Artificial Fields. These new fields can be described by using the Fluent API. They are accessible via the Generic Metadata Access which is based on the System.ComponentModel API, but adds OpenAccess specific functionality.
Artificial Types
Artificial types are the types that are not present in the model itself but are defined during runtime. These persistent types are described in XML configuration entries.
Automatic Change Tracking
Modifications to values of the persistent fields are automatically tracked. You don't need to notify the OpenAccess runtime system that an instance is to be written. When modifications are detected, only the necessary columns are included in the resulting SQL statements. All referenced persistent objects will be handled as well, and only complete object graphs are stored – no instance is left behind.