Class EntityCollectionProperty
- Namespace
- The.Relationships
- Assembly
- Instagile.dll
A one-to-many foreign key
public abstract class EntityCollectionProperty : RelationshipProperty, IProperty, IOwned, IHasChanges, ILazy, INotifyCollectionChanged
- Inheritance
-
EntityCollectionProperty
- Implements
- Derived
- Inherited Members
Remarks
The base EntityCollection is always a collection of IEntity, but it is non-generic because it is mutable. Covariance would not be safe. Instead, there's a generic subclass EntityCollection<T>, created by factories.
Constructors
EntityCollectionProperty(RelationshipInfo, EntityKernel)
public EntityCollectionProperty(RelationshipInfo metadata, EntityKernel parent)
Parameters
metadataRelationshipInfoparentEntityKernel
Fields
CurrentValues
protected ConcurrentSet<RelationshipKernel> CurrentValues
Field Value
OriginalValues
protected ConcurrentSet<RelationshipKernel> OriginalValues
Field Value
Properties
Count
Gets the number of entities in the collection. Does not require or force the property to be present.
public int Count { get; }
Property Value
IsInitialised
public override sealed bool IsInitialised { get; }
Property Value
IsPresent
True if fully loaded, false if partially or fully unloaded.
public override sealed bool IsPresent { get; }
Property Value
WasModifiedWhileUnloaded
public bool WasModifiedWhileUnloaded { get; }
Property Value
Methods
Add(IEntity)
public abstract void Add(IEntity item)
Parameters
itemIEntity
AddImpl(Mutation, EntityKernel, RowState)
protected void AddImpl(Mutation m, EntityKernel entity, RowState initialState)
Parameters
mMutationentityEntityKernelinitialStateRowState
AddRange(IEnumerable<IEntity>)
public abstract void AddRange(IEnumerable<IEntity> items)
Parameters
itemsIEnumerable<IEntity>
Clear()
public abstract void Clear()
ClearAsync(CancellationToken?)
public abstract Task ClearAsync(CancellationToken? cancellationToken = null)
Parameters
cancellationTokenCancellationToken?
Returns
ClearImpl(Mutation)
protected void ClearImpl(Mutation m)
Parameters
mMutation
Contains(IEntity?)
protected abstract bool Contains(IEntity? item)
Parameters
itemIEntity
Returns
EagerLoad(Mutation, IEnumerable<IEntity>)
public void EagerLoad(Mutation m, IEnumerable<IEntity> relatedEntities)
Parameters
mMutationrelatedEntitiesIEnumerable<IEntity>
FindKernel(EntityKernel)
protected RelationshipKernel? FindKernel(EntityKernel entity)
Parameters
entityEntityKernel
Returns
GetCurrentKernels()
protected override IEnumerable<RelationshipKernel> GetCurrentKernels()
Returns
GetOriginalKernels()
protected override IEnumerable<RelationshipKernel> GetOriginalKernels()
Returns
GetRelatedEntities()
protected abstract IEnumerable<IEntity> GetRelatedEntities()
Returns
GetRelatedEntitiesAsync(RelationshipPath[], CancellationToken?)
protected abstract Task<IEnumerable<IEntity>> GetRelatedEntitiesAsync(RelationshipPath[] includeRelationships, CancellationToken? cancellationToken)
Parameters
includeRelationshipsRelationshipPath[]cancellationTokenCancellationToken?
Returns
GetRelatedEntitiesCachedAsync(RelationshipPath[], RequestOptions, CancellationToken?)
protected abstract Task<IEnumerable<IEntity>> GetRelatedEntitiesCachedAsync(RelationshipPath[] includeRelationships, RequestOptions options, CancellationToken? cancellationToken)
Parameters
includeRelationshipsRelationshipPath[]optionsRequestOptionscancellationTokenCancellationToken?
Returns
InternalAddCurrent(Mutation, RelationshipKernel)
protected override bool InternalAddCurrent(Mutation m, RelationshipKernel kernel)
Parameters
mMutationkernelRelationshipKernel
Returns
InternalAddOriginal(RelationshipKernel)
protected override void InternalAddOriginal(RelationshipKernel kernel)
Parameters
kernelRelationshipKernel
InternalCopy(Mutation, RelationshipProperty, RelationshipProperty, bool, CloneState)
protected override void InternalCopy(Mutation m, RelationshipProperty from, RelationshipProperty to, bool cloneEntities, CloneState state)
Parameters
mMutationfromRelationshipPropertytoRelationshipPropertycloneEntitiesboolstateCloneState
InternalHasChanges(bool)
protected override bool InternalHasChanges(bool ignoreDerived)
Parameters
ignoreDerivedbool
Returns
InternalRemoveCurrent(Mutation, RelationshipKernel)
protected override bool InternalRemoveCurrent(Mutation m, RelationshipKernel kernel)
Parameters
mMutationkernelRelationshipKernel
Returns
InternalRemoveOriginal(Mutation, RelationshipKernel)
protected override bool InternalRemoveOriginal(Mutation m, RelationshipKernel kernel)
Parameters
mMutationkernelRelationshipKernel
Returns
LazyLoad(Mutation)
protected override void LazyLoad(Mutation m)
Parameters
mMutation
LazyLoadAsync(Mutation, CancellationToken?)
protected override Task LazyLoadAsync(Mutation m, CancellationToken? cancellationToken)
Parameters
mMutationcancellationTokenCancellationToken?
Returns
LazyLoadAsync(Mutation, RelationshipPath[], CancellationToken?)
protected Task LazyLoadAsync(Mutation m, RelationshipPath[] includeRelationships, CancellationToken? cancellationToken)
Parameters
mMutationincludeRelationshipsRelationshipPath[]cancellationTokenCancellationToken?
Returns
LazyLoadCachedAsync(Mutation, RelationshipPath[], RequestOptions, CancellationToken?)
protected Task LazyLoadCachedAsync(Mutation m, RelationshipPath[] includeRelationships, RequestOptions options, CancellationToken? cancellationToken)
Parameters
mMutationincludeRelationshipsRelationshipPath[]optionsRequestOptionscancellationTokenCancellationToken?
Returns
MarkUnchanged()
update original data so that it's no longer considered changed
public override void MarkUnchanged()
Remove(IEntity)
public abstract void Remove(IEntity item)
Parameters
itemIEntity
RemoveImpl(Mutation, EntityKernel)
protected void RemoveImpl(Mutation m, EntityKernel entity)
Parameters
mMutationentityEntityKernel
RemoveRange(IEnumerable<IEntity>)
public abstract void RemoveRange(IEnumerable<IEntity> items)
Parameters
itemsIEnumerable<IEntity>
SetRelatedEntities(Mutation, IEnumerable<EntityKernel>)
protected void SetRelatedEntities(Mutation m, IEnumerable<EntityKernel> entityKernels)
Parameters
mMutationentityKernelsIEnumerable<EntityKernel>
Unload(RelationshipKernel)
protected override void Unload(RelationshipKernel forgottenKernel)
Parameters
forgottenKernelRelationshipKernel
Events
CollectionChanged
Occurs when the collection changes.
public event NotifyCollectionChangedEventHandler? CollectionChanged