C# EntityFramework ToListSync()不起作用
我尝试调用EF方法ToListAsync。但是什么也没发生——没有异常,没有超时,只是在运行 这是我的密码C# EntityFramework ToListSync()不起作用,c#,.net,async-await,entity-framework-6,C#,.net,Async Await,Entity Framework 6,我尝试调用EF方法ToListAsync。但是什么也没发生——没有异常,没有超时,只是在运行 这是我的密码 private IQueryable<Place> placeCompleteQuery; protected IQueryable<Place> PlaceCompleteQuery { get { return this.placeCompleteQuery ?? (this
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();
}
private IQueryable placeCompleteQuery;
受保护的IQueryable PlaceCompleteQuery
{
得到
{
返回this.placeCompleteQuery??(this.placeCompleteQuery=this.Context.Places.Include(p=>p.Address)。
包括(p=>p.CreatedBy)。
包括(p=>p.Source)。
包括(p=>p.Type.Translations)。
包括(p=>p.Ratings));
}
}
公共异步任务GetPlacesByLocationAsync(数据库地理位置,整数半径)
{
List temporaryResult=PlaceCompleteQuery.Where(p=>p.Location.Distance(Location)p.Location.Distance(Location)我怀疑在调用堆栈的后面,您的代码正在调用Task.Wait
或Task.Result
。如果您在UI线程或ASP.NET请求上下文中执行此操作,正如我在博客中解释的那样
若要修复它,请使用Wait
而不是Task.Wait
或Task.Result
您是对的。我没有将控制器方法标记为async。感谢您的帮助。