Mindscape LightSpeed - User Reference & API Documentation
Mindscape.LightSpeed Namespace
API ReferenceMindscape.LightSpeed
The Mindscape.LightSpeed namespace provides classes that are used to implement the core services of the framework.
Declaration Syntax
C#Visual Basic
namespace Mindscape.LightSpeed
Namespace Mindscape.LightSpeed
Types
All TypesClassesInterfacesEnumerations
IconTypeDescription
CachedAttribute
Signals that an entity should be cached.

ColumnAttribute
Signals that an a field should use a custom column mapping. See also INamingStrategy for performing database wide naming schemes.

DataProvider
The data providers supported by LightSpeed. Unless otherwise specified, the version number indicates the minimum supported database version.

DefaultNamingStrategy
The default database naming strategy.

DependentAttribute
Notifies the framework that a one-to-many association should be considered dependent. This determines, among other things, delete cascade behaviour. When a one-to-many association is dependent, child rows are cascade deleted along with the parent entity. NB. This is normally inferred based on the nullability of the corresponding foreign key field.

DiscriminatorAttribute
Facilitates Single Table Inheritance. Use the Attribute property to indicate the database column used to discriminate between types in an inheritance hierachy. The database column used as a discriminator is not required to exist in the domain model.

EagerLoadAttribute
Notifies the framework that a field should be eager loaded. If this attribute is applied to a value object field, then AggregateName should be specified and the field becomes lazy by default.

Entity
The non-generic entity abstract base class. Never derive directly from this class but from Entity<(Of <(TId>)>).

Entity<(Of <(TId>)>)
The abstract base class inherited by all entities.

EntityCollection<(Of <(TEntity>)>)
A collection of Entity objects.

EntityEventArgs<(Of <(TEntity>)>)
Data about an event relating to a single Entity.

EntityHolder<(Of <(TEntity>)>)
An object that holds a reference to an associated Entity

EntityState
Represents the current state of an Entity.

EntityStateChangedEventArgs
Event data relating to the EntityStateChanged event.

IdentityMethod
Determines the strategy used to generate new identity values.

IIdentifiable
Implementors have an Id property.

INamingStrategy
Defines a strategy for resolving database names.

IUnitOfWork
Defines the contract for a Unit of Work. A Unit of Work maintains a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems.

IUnitOfWorkFactory
A factory for concrete IUnitOfWork implementations.

LightSpeedContext
The top-level object in the framework. Sets up a context within which the framework operates.

LightSpeedException
Represents a general error that occurs within the LightSpeed framework.

OptimisticConcurrencyException
Represents an optimistic concurrency violation which occurs when an update or delete fails due to stale data.

OrderByAttribute
Determines the default ORDER BY clause applied when querying. This attribute can be applied to either an Entity<(Of <(TId>)>) class or an EntityCollection<(Of <(TEntity>)>) one-to-many association field. When defined at the class level the specified ordering becomes the default ordering used when retrieving the associated class. When defined at the association level the specified ordering is applied only when loading that particular association.

Repository
Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects.

ReverseAssociationAttribute
When more than one association of the same type exists on a model use this attribute to specify the name of the reverse association field on the target type. The attribute only needs to be applied to one end of the association (either one) not both. N.B. This is only required when there is more than one association between two models. i.e. One table has more than one foreign key to another table.
Examples
CopyC#
// type Contribution

private readonly EntityHolder<Member> _approvedBy = new EntityHolder<Member>();
private readonly EntityHolder<Member> _contributor = new EntityHolder<Member>();

// type Member

[ReverseAssociation("Contributor")]
private readonly EntityCollection<Contribution> _contributions
  = new EntityCollection<Contribution>();

[ReverseAssociation("ApprovedBy")]
private readonly EntityCollection<Contribution> _approvedContributions
  = new EntityCollection<Contribution>();

TableAttribute
Signals that a class should use a custom table mapping. See also INamingStrategy for performing database wide naming schemes.

ThroughAssociation<(Of <(TThrough, TTarget>)>)
An EntityCollection<(Of <(TEntity>)>) decorator that provides convenient access to entities that are normally accessed through an intermediary association. The primary use of this class is to provide a more object-oriented view of many-to-many relationships.

TransientAttribute
Notifies the framework that a field should not be considered by the framework.

ValueObjectAttribute
Marks a field as Value Object. A value object is immutable, has no identity and is mapped as part of it's owning Entity . Example Value Objects are Money or Address.