Aspectize EntityManager Overview
Aspectize EntityManager and Entity Designer enable you to focus on your business needs abstracting away technical details related to your physical data storage or its query language.
Aspectize EntityManager is a .net component that manages the in memory data and implements a rich and powerful relational data management API. All programming is done directly against the applications conceptual model, no SQL is required.
Unlike traditional ORM (Object Relational Mapping) tools EntityManager and Entity Designer map stored relational data to strongly typed relational data objects in memory and thus do not suffer from limitations and difficulties caused by O/R impedance mismatch.
With Aspectize EntityManager you can efficiently store and retrieve data from multiple physical storages. You fully control the granularity and dynamics of data retrieval and storage. The following storage providers are currently supported:
- File
- Azure Blob
- RDBMS (SQL Server, Oracle)
- Azure Storage
- Azure SQL Server
EntityManager is designed to run in disconnected and stateless environments and thus is well suited to multi-tier architectures. You can the component either on the client side or on the server side.
On the server side: EntityManager is uses to retrieve and save data from and to the persistent storage. All client side functionalities are of course present on the server side too.
On the client side: EntityManager is used to navigate through and/or to create, update and delete the already loaded relational data in memory. If the architecture has only two tiers you can use the component retrieve and save data on the client side too.
Aspectize EntityManager API
EntityManager implements a powerful yet very simple API. You program directly against a conceptual data model. Central to this API are the notions of Entity and binary Relation. The entities and relations can be used through their strong .net types created by Entity Designer or dynamically through their type names.
EntityManager lets you:
- Load data from Storage to Memory.
- Save data from Memory to Storage.
- Manage data in Memory
- Get and Change data.
- Create and Delete data.
- Navigate through relations.
- Associate/Dissociate through a relation.
Loading data from Storage to Memory
EntityManager provides you many options for Loading Data into Memory. You can:
- Load one, some or all entities of a given type by specifying an id, a criteria or nothing for selecting the entities.
- Load one, some or all entities and their associated entities of a given type and associating relation by specifying an id, a criteria or nothing for selecting the entities to start with.
- Load one, some or all entities of a given type and a graph of all related entities given a coherent sequence of relations to follow by specifying an id, a criteria or nothing for selecting the entities to start with.
- Load one, some or all entities of a given type and a graph of all related entities by following all container relations by specifying an id, a criteria or nothing for selecting the entities to start with.
- Load all entities of a given domain.
- Load only associated entities of a given type and associating relation to one, some or all entities by specifying an id, a criteria or nothing for selecting the entities to start with.
- Load all entities of a given type Not associated with a given.
- Load entities dynamically by providing a query string using Aspectize Query Syntax.
- Load entities of a given type by providing a custom query string in standard SQL.
With each option you can chose which properties to load using different ways:
- Load single valued properties only
- Load multi-valued properties only
- Load time dependent properties only
- Any combination of the above
- Explicitly specify the properties to load.
Saving data from Memory to Storage
EntityManager tracks changes (Creation, Deletion and Modification) on loaded data and thus makes it extremely easy to save changed data to Storage. With just one call you can save all changes to your Storage.
Managing data in Memory
EntityManager lets you Create, Get, Change, Delete strongly typed entity objects in memory, and moreover you can Associate and Dissociate two entities through a given relation and last but not least you can Navigate from entity to entity following relations and roles.
Where To go from here?
You can continue getting acquainted with Aspectize DAL Technology features, tools and terminology by reading Entity Designer Overview, Entity Manager Overview and Terminology.
Or you can jump start your Aspectize experience by following our Quick Start Tutorial.