Updated to use EF Async methods

@HaoK @divega 

All functional tests passing.
@divega In this scenario when the return type is Task<IList<foo>>, directly returning the Linq query throws an error saying cannot convert Task<List<foo>> to Task<IList<foo>>. Hence had to do this workaround