Namespace LemonEdge.API.Core.Data
Classes
ContextLiveCache
All getitems are always executed live. Keyitems are cached locally
CustomFunctionsHelper
Provides a helper class for calling methods on ICustomFunctions through IEntityUpdater
CustomServiceQueryExtender<T>
This class can be inherited by any custom code to provide a mechanism of creating queries that join across items without having to use separate IEntityRetriever queries.
As IEntityRetriever encapsulates the connection (web or direct database connection) for the client, this provides a mechanism to run LINQ queries regardless
Any class created inheriting from this can be called using ExecuteCustomQuery<T>(string, params object[]).
The constructed IQueryable should be compatible with dynamic Linq translations to SQL
EntityUpdaterExtensions
QueryableExecuterExtensions
These make the rest of the code base a lot easier to read. Instead of:
(await con.ExecuteQuery(GetItems{T}().Where().Where())).ToArray();
You can write:
await con.GetItems{T}()
.Where()
.Where()
.ExecuteAsArray(con);
Interfaces
ICustomFunctions
A set of custom functions that can be run against the IEntityUpdater
ICustomServiceQueryHelper
A helper class used by any CustomServiceQueryExtender<T> implementation in order to retrieve items to build a query with
IDataUpdater
IDatabaseStatusProxy
IEntityRetriever
This is the core context class used for querying all data in the LemonEdge platform, regardless if the context is executing directly connected to the database, or across a web service
This context is always provided within UI and Context APIs, ensuring you can always access data wherever it is needed from a view, command, server running task or elsewhere
All queries can refer to the interface for a type, or the class that implements it
IEntityUpdater
This is the core context class used for updating all data in the LemonEdge platform, regardless if the context is executing directly connected to the database, or across a web service
This context is always provided within UI and Context APIs, ensuring you can always access data wherever it is needed from a view, command, server running task or elsewhere
IHasOriginalID
Indicates this entity can be copied from other entities, and when done so this holds the id of the original item it was copied from
IQueryLock
A lock provided for each GetQueryableItems call on an IDataUpdater call. Once the IQueryable has finished being used we need to call ReleaseQueryableItemLockAfterExecution to ensure the original context is int the right state
You recieve one IQueryLock for each GetQueryableItems call, this allows the context to make multiple calls in parralel - but each GetQueryableItems needs to be unlocked once finished using.
IReadOnlyCache
An interface for retrieving and caching items. This should only be used to load standing data items that are frequently referenced but not updated often. Whenever an item is actually changed the cache of those items will be refreshed
Enums
EntityOperation
The type of operations that an IEntityUpdater uses for tracking changes in the context before sending them in one batch for a single save within a transaction