A Mapper is the primary means of mapping object-oriented programming objects to data sources managed by relational databases or other sources of data. A Mapper provides 2-way (Read and Write) access to the underlying Data Source.
The Mapper is used to map data from one or more tables, possibly via a view or stored procedure, to application memory, to the User Interface (UI), and back again. The Mapper manages all Create/Read/Update/Delete activity against the database as configured in meta-data and provides events for overriding its standard behavior.
Mappers implement the IMapper interface which allows programmatic manipulation of the data during any stage of the page life-cycle. Mappers can also be used in a purely programmatic role, with no UI, to manage your database.
By attaching code extensions to Mappers you can implement business logic for your application on a single object, multiple objects, or globally.
Many of the capabilities of the mapper are configurable with meta-data and requiring no custom code:
|Optimistic locking||Row||Uses row-revisioning.|
|DB Transaction||Row||With rollback on errors.|
|Required Fields||Col||Client-side validation with server-side redundancy.|
|Data validation||Col||Client-side validation with server-side redundancy.|
|Datatype mapping||Row/Col||DB to/from .NET datatypes.|
|Timezone handling||Col||Including support for user-local timezone conversion.|