BLToolkit is not a traditional ORM tool. Traditional ORMs provide two features in one: Data Mapping and Entity Services. Data Mapping is responsible for data access and mapping relational data to/from object model. Entity Services create an illusion that database does not exist at all, but objects are magically stored in and retrieved from some persistent storage. Entity Services usually provide change tracking, object identity, caching, validation, etc. Let's call this kind of ORM Heavy ORM
and ORM providing Data Mapping only Lightweight ORM
. BLToolkit is Lightweight ORM
, so you will not find here:
- Lazy loading.
- Automatic object storage and cashing.
- Automatic change tracking and object identity.
- Any Unit Of Work Pattern support such as method SubmitChanges for data context.
Instead the following will be available:
- Linq DML operations (Insert/Update/Delete).
- Close to SQL programming model including SELECT without FROM statement (for example, to generate SELECT CURRENT_TIMESTAMP query).
- Possibility to define an object model with interfaces only.
- Mechanism for reuse expressions and sub queries.
- Clear, readable and human friendly generated SQL.
In other words, BLToolkit will not hide your database from you. It's quite the opposite, BLToolkit will provide comprehensive, natural and explicit way to work with your database. No magic, no implicity, no surprises.