OpenAccess ORM supports flexible mappings from .NET types (e.g., System.String) to database specific SQL types (e.g., VARCHAR2 on Oracle). The default mappings can be customized for a specific datastore. The mapping for specific fields can also be customized. Mappings are resolved by first using any information specified for the field, then looking up a generic type for the type of the field using the .NET Type Mapping, then converting this generic type into actual SQL type information using the Generic Type Mapping. You can have different mapping information for each database supported by OpenAccess.
OpenAccess ORM supports sharing of columns between different fields. This is very useful while mapping to legacy database schemas. It is possible to use a reference to a persistence capable class as part of the primary key or to use the primary key of a table as part of a foreign key reference to another table.