The purpose of this topic is to give you a short introduction to the OpenAccess metadata type hierarchy, as well as to the most important classes in it.
 |
This Telerik.OpenAccess.Metadata contains a set of types that represent the OpenAccess concepts in the conceptual, mapping and storage model. It also provides a set of classes which can be used to examine the metadata. |
The following sections are included:
Metadata Type Hierarchy
The following diagram illustrates the type hierarchy supported by the Telerik.OpenAccess.Metadata namespace.

The top-level class is a MetaItem, which is the base class for all the classes in the OpenAccess metadata type hierarchy.

The MetadataContainer is the entry class that serves as a logical container for the conceptual, as well as the relational parts of the metadata model tree. Telerik OpenAccess ORM provides the MetadataContainer class as a central runtime API that you can use to interact with the metadata model in the context of an application. The MetadataContainer aggregates metadata from specific Item Collections that are individually responsible for loading different types of metadata. Check out the diagram below:

For more information about the item collections, exposed by the MetadataContainer, please refer to the Item Collections topic.
The MetaPersistentType represents a class containing the metadata for the persistent classes used by Telerik OpenAccess ORM. For more information, read here.

The MetaMember holds information about fields and properties of the persistent classes. It has two derivations: the MetaPrimitiveMember and MetaNavigationMember. The first derivation handles all value types(plus strings and blobs), where the second handles the references to other entities.
The MetaTable is a class describing a table from the relational data store and can be mapped to a persistent class. The MetaView is a derivation of the MetaTable and is handled in the exact same manner during the runtime. It describes a view from the relational data store. MetaStoredProcedure class holds information for stored procedures from the relational data store that are mapped to actual static methods in the project.
 |
For more information about the types exposed in the Telerik.OpenAccess.Metadata namespace, take a look at the MetadataTypes - Overview topic. |
Main Layers
There are two main layers in the metadata type hierarchy: conceptual and relational.
The first one resembles Types, Members, and Relationships. In the conceptual layer, types are the top-level constructs from which the actual classes in the project are generated. Members define the content of persistent types (fields, properties etc..). The logical connections between the persistent types is provided through relationships. For more information and a full list of all conceptual types, check out the Conceptual Types topic.
The relational layer on the other side provides description for the database schema in terms of Tables, View, Constraints and Stored Procedures. In the relational layer of the OpenAccess metadata, Tables and Views are the main described artifacts that map directly to persistent classes. The Constraints describe the relations between the tables in terms of foreign keys. Stored Procedures are also part of the relational layer where their signature and parameters are described. For more information and a full list of all relational types, check out the Relational Types topic.
 |
All relational types that are available in the metadata model are defined in the Telerik.OpenAccess.Metadata.Relational namespace. |