public static async Task <long> GetNextScopedIdAsync <T>(this Dataset <T, long> dataset, long scopeId) { var range = ScopedId.GetRange(scopeId); // should be max id in range... var count = await dataset.CountAsync( Expression.Between("id", range.Start, range.End) ); return(ScopedId.Create(scopeId, count)); }