Namespace Azos.Data.Access
Classes
CRUDOperationCallContext
Establishes an async-safe context which surrounds CRUD operations. You can derive your own classes, the .ctor must be chained. The context flows between async operations and can be nested. Logical flow must be observed: a call to .ctor must be balanced with eventual call to .Dispose() (which may be async). This class is used to pass some out-of-band information to CRUD operations without changing the caller interface, i.e. to swap database connection string
CRUDQueryHandler
Represents an entity that can execute a query. The implementation may be called by multiple threads and must be safe
CRUDQueryHandler<TStore>
Represents an entity that can execute a query. The implementation may be called by multiple threads and must be safe
CRUDTransaction
Represents an abstract base for CRUDTransactions that perform particular backend CRUD work in overriden classes
Cursor
Represents a buffer-less unidicrectional reader that binds IEnumerable(Doc) and the backend resource (such as SQLReader or other object which is internal to the backend). The cursor is NOT thread-safe and must be disposed properly by closing all resources associated with it. Only one iteration (one call to GetEnumerator) is possible
Cursor.enumerator
DataAccessException
Thrown by data access classes
NameValueDataStoreKey
Defines dictionary of string/object pairs used for key matching, where string dictionary key represents column name in storage and value is an object for the key
NOPDataStore
Represents data store that does not do anything
PassthroughCursor
Represents a cursor that basically does nothing else but passes through control to source IEnumerable(Row)
Query
Defines a query sent into ICRUDDataStore implementor to retrieve data. A Query is a named bag of paremeters where every parameter has a name and the value.
Query.Param
Represents a CRUD query parameter
Query<TResultDoc>
Generic version of Query
QueryResolver
Infrastructure class - not for app developers. Resolves Query objects into query handlers. Query names are case-insensitive. This class is thread-safe
QuerySource
Represents query source code with pre-processed pragmas
QuerySource.ColumnDef
Provides column definition in QuerySource
Structs
CacheParams
Implements ICacheParams - supplied caching parameters
ConsecutiveUniqueSequenceIds
Represents a starting ID along with the number of consecutive generated IDs of the sequence
CounterDataStoreKey
Represents a key (key field) used in databases that identify entities with BIGINT identity/autoinc columns
Interfaces
ICRUDDataStore
Represents a DataStore that supports CRUD operations
ICRUDDataStoreImplementation
ICRUDOperations
Describes an entity that performs single (not in transaction/batch)CRUD operations
ICRUDQueryExecutionContext
Represents a context (such as Sql Server connection + transaction scope, or Hadoop connect string etc.) for query execution. This is a marker interface implemented by particular providers
ICRUDQueryResolver
Represents a class that resolves Query into suitable handler that can execute it
ICRUDTransactionOperations
Describes an entity that performs single (not in transaction/batch)CRUD operations
IDataStore
Represents a store that can save and retrieve data
IDataStoreImplementation
Represents a store that can save and retrieve data
IDataStoreKey
Decorator interface for entities used to uniquely identify entities in a store
IDistributedStableHashProvider
Denotes entities that provide ULONG STABLE hash code for use in a distributed (large scale) system. This is needed primarily for cluster/large datasets to properly compute 64bit sharding addresses and to differentiate from GetHashCode() that returns 32 bits unstable hash for local object location in hashtables. DO not confuse with object.GetHashCode() which is un-suitable for long-term persistence
IGdidProvider
Represents an entity that provides unique Global Distributed IDs (GDIDs) via named sequences. Note: GDID.Zero is never returned as it indicates the absence of a value
ISequenceInfo
Provides basic information about a named sequence. Warning!!! This class represents informational-only data which CAN NOT be used for real identification
IUniqueSequenceProvider
Represents an entity that provides unique identifiers via named sequences
Enums
CRUDDataStoreType
Denotes types of CRUD stores
KeyViolationKind
Specifies the sub-type of key violation
TransactionDisposeBehavior
Specifies how transaction scope behaves on scope exit
TransactionStatus
Denotes transaction statuses