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의 두 번째 비동기 호출은 결과도 예외없이 계속 실행됩니다.
모든 제안?
해결책
Call Stack을 첨부하면 코드가 Task.Wait
또는 Task<T>.Result
를 호출하는 것으로 의심됩니다.UI 스레드 또는 ASP.NET 요청 컨텍스트 에서이 작업을 수행하는 경우, 코드가 교착 상태로
Fix to await
또는 Task.Wait
대신 Task<T>.Result
를 사용하십시오.
제휴하지 않습니다 StackOverflow