Fetching data in an asynchronous way can be accomplished in various ways. To outsource it to an o/r mapper gives challenges which you probably don't want to deal with as it doesn't really make your code less complex. The main problem is that you have to have a mechanism which is notified when the fetch is completed by the o/r mapper, so the caller is notified that data is ready.
This isn't less complex than creating a thread yourself and call the o/r mapper's fetch logic from that thread.
As you state that you want to create a webservice which should be responsive, you've to realize that the caller is outside the webservice and waits for data. I.o.w.: if the caller uses the webservice for fetching data, it's already asynchronous, as other clients will still be able to call the webservice as well: the original caller's request is handled on a different thread, logic to fetch the data is ran inside that thread, and the data is then returned to the caller.
Using asynchronous methods is of no use here, as the caller would otherwise have to be notified when the data is ready, which requires a push from the webservice to the client, which requires the client to stay connected to the webservice as long as the fetch takes anyway.
Asynchronous db interaction isn't magic things you can throw at something so it gets more responsive. Asynchronous db interaction could make the caller do other things in the mean time. However if that's already not necessary, you don't need asynchronous db interaction to begin with, which will make your code a lot less complex.