EntityFramework ToListAsync() ne fonctionne pas
J'essaie d'appeler EF méthode ToListAsync. Mais rien ne s'est vraiment passé - pas d'exception, pas de délai d'attente juste en cours d'exécution.
C'est mon code.
private IQueryable<Place> placeCompleteQuery;
protected IQueryable<Place> PlaceCompleteQuery
{
get
{
return this.placeCompleteQuery ?? (this.placeCompleteQuery = this.Context.Places.Include(p => p.Address).
Include(p => p.CreatedBy).
Include(p => p.Source).
Include(p => p.Type.Translations).
Include(p => p.Ratings));
}
}
public async Task<IList<Place>> GetPlacesByLocationAsync(DbGeography location, int radius)
{
List<Place> temporaryResult = PlaceCompleteQuery.Where(p => p.Location.Distance(location) <= radius).
ToList();
return await PlaceCompleteQuery.Where(p => p.Location.Distance(location) <= radius).
ToListAsync();
}
La première synchronisation appel de ToList de retour de méthode résultat immédiatement. Le deuxième appel asynchrone de ToListAsync toujours en cours d'exécution avec aucun résultat, ni exception.
Des suggestions?
Vous devez vous connecter pour publier un commentaire.
Je soupçonne que plus loin vers le haut de votre pile d'appel, votre code d'appel
Task.Wait
ouTask<T>.Result
. Si vous faites cela sur le thread de l'INTERFACE utilisateur ou d'un ASP.NET contexte de demande, votre code de blocage, comme je l'explique sur mon blog.De le fixer, utiliser
await
au lieu deTask.Wait
ouTask<T>.Result
.