簡體   English   中英

EntityFramework ToListAsync()不起作用

[英]EntityFramework ToListAsync() does not work

我嘗試調用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的第二次異步調用仍在運行,沒有結果也沒有異常。

有什么建議?

我懷疑你的調用堆棧更進一步,你的代碼調用Task.WaitTask<T>.Result 如果你在UI線程或ASP.NET請求上下文中執行此操作, 您的代碼將會死鎖 ,正如我在我的博客上解釋的那樣。

要修復它,請使用await而不是Task.WaitTask<T>.Result

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM