/// <summary> /// Inserts the objects into the database, replacing existing entries if the given primary keys already exist. /// </summary> /// <returns>A Task that completes with a dictionary mapping the provided objects to the objects that were inserted into the database.</returns> /// <param name="This">The database connection.</param> /// <param name="objects">The objects to be inserted into the database.</param> /// <param name="resultSelector">A transform function to apply to each row.</param> /// <typeparam name="T">The mapped type.</typeparam> public static Task <IReadOnlyDictionary <T, T> > InsertOrReplaceAllAsync <T>( this IAsyncDatabaseConnection This, IEnumerable <T> objects, Func <IReadOnlyList <ResultSetValue>, T> resultSelector) => This.InsertOrReplaceAllAsync(objects, resultSelector, CancellationToken.None);