There are two general approaches for parameter validation (e.g., ArgumentNullException) with *Async methods:
- "Eagerly" throw the exception before the
Task is created; this requires a non-async method that calls the async helper.
- Return a faulted
Task holding the ArgumentException; this happens by default if parameter checking happens in an async method.
Test if ADO.NET providers differ in how they implement this.