public Task <Person> CreatePersonFunctionalAsync(string fullName, string email) => dbProvider.CreateOpenConnectionAndAsync(connectionString, conn => CreatePersonCommand.BuildFrom(conn, new Dictionary <string, object> { { "@FullName", fullName }, { "@Email", email } }).DisposeAfterAsync(async cmd => new Person( id: Convert.ToInt32(await cmd.ExecuteScalarAsync()), fullName: fullName, email: email, optOut: false) ) );