EntityFramework TolistAsync()は機能しません
-
21-12-2019 - |
質問
私はEFメソッドtolistasyncを呼び出しようとします。しかし、何も起こりません - 例外なし、タイムアウトは実行されていません。
これは私のコードです。
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();
}
.
Tolistメソッドの最初の同期呼び出しはすぐに結果を返します。結果も例外なしでまだ実行されているTolistAsyncの2番目の非同期呼び出し。
任意の提案?
解決
私はあなたのコールスタックをさらにアップすると、コードはTask.Wait
またはTask<T>.Result
を呼び出しています。UIスレッドまたはASP.NETリクエストコンテキストでこれを行う場合は、私のブログについて説明するように、コードはデッドロックになります。
それを修正するには、await
またはTask.Wait
の代わりにTask<T>.Result
を使用します。
所属していません StackOverflow