문제

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를 사용하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top