/// <summary>
        /// Updates the sequence.
        /// </summary>
        /// <param name="context"></param>
        /// <param name="name"></param>
        /// <param name="update"></param>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        /// <exception cref="InvalidOperationException"></exception>
        public static bool UpdateSequence <T>(this DbContext context, string name, DbSequenceUpdate <T> update)
            where T : struct
        {
            var provider = context.GetService <ISequenceProvider>();

            if (provider == null)
            {
                throw new InvalidOperationException("No SequenceProvider found");
            }

            var res = provider.UpdateSequence(name, update);

            return(res);
        }
        /// <summary>
        /// Updates the sequence asynchronously.
        /// </summary>
        /// <param name="context"></param>
        /// <param name="name"></param>
        /// <param name="update"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        /// <exception cref="InvalidOperationException"></exception>
        public static async Task <bool> UpdateSequenceAsync <T>(this DbContext context, string name, DbSequenceUpdate <T> update, CancellationToken ct = default)
            where T : struct
        {
            var provider = context.GetService <ISequenceProvider>();

            if (provider == null)
            {
                throw new InvalidOperationException("No SequenceProvider found");
            }

            var res = await provider.UpdateSequenceAsync(name, update, ct);

            return(res);
        }