Table of Contents

Interface IEntitySet<T>

Namespace
The.Entities
Assembly
Instagile.dll

A set of entities which can be queried and modified; may be owned by a parent entity.

public interface IEntitySet<T> : IFrozenQuery<T>, IEntityQuery<T>, IEntityQuery, IDisposable, IEnumerable, INotifyCollectionChanged, IProperty, IOwned, IHasChanges, ILazy where T : IEntity

Type Parameters

T
Inherited Members
Extension Methods

Properties

CacheState

Whether data was loaded from the entity cache and, if so, whether it's up to date.

ResultState CacheState { get; }

Property Value

ResultState

Methods

Add(T)

void Add(T item)

Parameters

item T

AddAsync(T, CancellationToken?)

Task AddAsync(T item, CancellationToken? cancellationToken = null)

Parameters

item T
cancellationToken CancellationToken?

Returns

Task

AddRange(IEnumerable<T>)

void AddRange(IEnumerable<T> items)

Parameters

items IEnumerable<T>

AddRangeAsync(IEnumerable<T>, CancellationToken?)

Task AddRangeAsync(IEnumerable<T> items, CancellationToken? cancellationToken = null)

Parameters

items IEnumerable<T>
cancellationToken CancellationToken?

Returns

Task

AsLoaded()

Assert that the set is loaded and treat it as iterable.

ILoadedSet<T> AsLoaded()

Returns

ILoadedSet<T>

Exceptions

InvalidOperationException

Thrown if the set is partially or entirely unloaded.

AsUnloaded()

Assert that the set is unloaded and treat it as a datastore query.

IEntityQuery<T> AsUnloaded()

Returns

IEntityQuery<T>

Remarks

An empty set is always considered loaded. Calling this method on an empty set will cause an exception to be thrown.

Exceptions

InvalidOperationException

Thrown if the set is partially or entirely loaded.

Clear()

void Clear()

ClearAsync(CancellationToken?)

Task ClearAsync(CancellationToken? cancellationToken = null)

Parameters

cancellationToken CancellationToken?

Returns

Task

Contains(T)

bool Contains(T item)

Parameters

item T

Returns

bool

ContainsAsync(T, CancellationToken?)

Task<bool> ContainsAsync(T item, CancellationToken? cancellationToken = null)

Parameters

item T
cancellationToken CancellationToken?

Returns

Task<bool>

GetEnumerator()

IEnumerator<T> GetEnumerator()

Returns

IEnumerator<T>

LoadAsync(CancellationToken?)

Load the whole set into memory for iteration or modification, including related entities.

Task<ILoadedSet<T>> LoadAsync(CancellationToken? cancellationToken = null)

Parameters

cancellationToken CancellationToken?

Cancellation token.

Returns

Task<ILoadedSet<T>>

The loaded set.

LoadAsync(RelationshipPath[], CancellationToken?)

Load the whole set into memory for iteration or modification.

Task<ILoadedSet<T>> LoadAsync(RelationshipPath[] includeRelationships, CancellationToken? cancellationToken = null)

Parameters

includeRelationships RelationshipPath[]

Relationship paths to load along with the set. If the set is already loaded, just the paths will be loaded.

cancellationToken CancellationToken?

Cancellation token.

Returns

Task<ILoadedSet<T>>

The loaded set.

LoadCachedAsync(RequestOptions?, CancellationToken?)

Load the whole set into memory for iteration or modification, including related entities. Uses the entity cache if possible. If the result was stale, CollectionChanged will be raised after validation.

Task<ILoadedSet<T>> LoadCachedAsync(RequestOptions? options = null, CancellationToken? cancellationToken = null)

Parameters

options RequestOptions

Request options (priority, freshness requirements).

cancellationToken CancellationToken?

Cancellation token.

Returns

Task<ILoadedSet<T>>

The loaded set.

Remarks

Check CacheState after calling to determine if a background refresh is in progress:

  • Fresh - Data is current, no refresh pending
  • Stale - Showing cached data, refresh in progress
  • Uncached - Data not from cache (for example, if already loaded)

If the collection is modified locally before the background refresh completes, the refresh will be silently skipped to preserve local changes.

Cache updates are marshalled to the calling thread's SynchronizationContext if available (e.g., WPF UI thread, Blazor component context).

LoadCachedAsync(RelationshipPath[], RequestOptions?, CancellationToken?)

Load the whole set into memory for iteration or modification. Uses the entity cache if possible. If the result was stale, CollectionChanged will be raised after validation.

Task<ILoadedSet<T>> LoadCachedAsync(RelationshipPath[] includes, RequestOptions? options = null, CancellationToken? cancellationToken = null)

Parameters

includes RelationshipPath[]

Relationship paths to load along with the set. If the set is already loaded, uses GraphNavigation.LoadGraphAsync to load the paths.

options RequestOptions

Request options (priority, freshness requirements).

cancellationToken CancellationToken?

Cancellation token.

Returns

Task<ILoadedSet<T>>

The loaded set.

Remarks

Check CacheState after calling to determine if a background refresh is in progress:

  • Fresh - Data is current, no refresh pending
  • Stale - Showing cached data, refresh in progress
  • Uncached - Data not from cache (for example, if already loaded)

If the collection is modified locally before the background refresh completes, the refresh will be silently skipped to preserve local changes.

Cache updates are marshalled to the calling thread's SynchronizationContext if available (e.g., WPF UI thread, Blazor component context).

Remove(T)

void Remove(T item)

Parameters

item T

RemoveAsync(T, CancellationToken?)

Task RemoveAsync(T item, CancellationToken? cancellationToken = null)

Parameters

item T
cancellationToken CancellationToken?

Returns

Task

RemoveRange(IEnumerable<T>)

void RemoveRange(IEnumerable<T> items)

Parameters

items IEnumerable<T>

RemoveRangeAsync(IEnumerable<T>, CancellationToken?)

Task RemoveRangeAsync(IEnumerable<T> items, CancellationToken? cancellationToken = null)

Parameters

items IEnumerable<T>
cancellationToken CancellationToken?

Returns

Task

ReplaceAll(IEnumerable<T>)

void ReplaceAll(IEnumerable<T> items)

Parameters

items IEnumerable<T>

ReplaceAllAsync(IEnumerable<T>, CancellationToken?)

Task ReplaceAllAsync(IEnumerable<T> items, CancellationToken? cancellationToken = null)

Parameters

items IEnumerable<T>
cancellationToken CancellationToken?

Returns

Task