using System.Collections; using System.Collections.Immutable; using System.Data; namespace Connected.Entities.Storage; /// /// Defines the read and write operations on the supported storage providers. /// /// >The type of the entitiy on which operations are performed. public interface IStorage : IQueryable, IQueryable, IEnumerable, IEnumerable, IOrderedQueryable, IOrderedQueryable where TEntity : IEntity { /// /// Updates the entity against the underlying storage. /// /// /// Task Update(TEntity? entity); Task Update(TEntity? entity, TArgs args, Func>? concurrencyRetrying) where TArgs : IDto; Task Update(TEntity? entity, TArgs args, Func>? concurrencyRetrying, Func>? merging) where TArgs : IDto; Task> OpenReaders(StorageContextArgs args); Task Execute(StorageContextArgs args); Task> Query(StorageContextArgs args); Task Select(StorageContextArgs args); }