The repository where the entities ultimately reside generally is not the application's memory itself, but an external storage like a DBMS. This implies that there is a boundary to cross in order to access data. Since this boundary crossing has a cost, EldorADO.NET provides mechanisms to help developers optimize boundary traversals:
The figure below shows the typical architecture of an application using EldorADO.NET:
In addition to the automatic preloading facility provided by ObjectContext's methods, manual preloading is also possible (method ObjectContext.Preload).
These different facilities offer a wide range of possibilities between full control and maximum comfort: you will trade one method for the other depending on performance considerations (data volumes and network latency), on when it is more appropriate to query the database, on what is known to be already present in the local storage, on what it is preferrable to keep in the local storage, or conversely, to query every time and again, etc.
|ObjectContext||An object serving as a bridge between a LocalStorage and one or several RemoteSources.|
|RemoteSourceCollection||Collection of RemoteSource objects.|
|IEntityLoader||Interface supported by mappers to load entities to ObjectContext objects.|
|IEntityUpdater||Interface supported by mappers to update entities and references from ObjectContext objects.|
|ITransactional||Interface used for transactional purposes.|
|RemoteSource||Structure representing a remote resource.|
|PreloadFlags||Flags indicating what to load.|