Updated to use EF Async methods

@HaoK @divega 

All functional tests passing.
You are right. We use await to unwrap the task and rewrap it as a `Task<IList<>>`. Whish there was a better way.