- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我尝试调用 EF 方法 ToListAsync。但什么也没发生——没有异常(exception),只是运行没有超时。
这是我的代码。
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.Wait
或 Task<T>.Result
.如果您在 UI 线程上或从 ASP.NET 请求上下文执行此操作,your code will deadlock ,正如我在我的博客上解释的那样。
要修复它,请使用 await
而不是 Task.Wait
或 Task<T>.Result
.
关于c# - EntityFramework ToListAsync() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22016484/
如果我尝试运行这段代码 await _dbContext.Set().ToListAsync(); 我会得到这个错误: InvalidOperationException: The source IQ
我正在使用 EntityFrameworkCore 及其 async 方法对 MySql 数据库运行一些非常基本的 SQL。当使用 ToListAsync() 返回数据时,每一行都只是第一行的重复,即
我想异步执行一些查询。但是当我调试代码时,大多数时候当调用 ToListAsync() 时程序停止。没有可见的异常,调用堆栈窗口被清除。当我在 VS 中按下暂停按钮时,我可以看到调用当前方法之前的堆栈
我正在开发 Entity Framework WinForms 应用程序,并尝试在与 UI 分开的线程上运行查询,并允许用户取消长查询。 我有 already asked one question关于
我刚刚读过这篇文章section显示了这个例子: IDocumentQuery query = client.CreateDocumentQuery( UriFactory.CreateDoc
我的函数在不运行异步时工作正常,但当我尝试将其更改为 .ToListAsync() 时失败并显示 "The ObjectContext instance has been disposed and c
为了提高我的页面性能,我想异步运行一些查询。 我升级到 EF6 是因为它通过公开异步方法原生支持此功能。 我无法让查询同时触发,所以我将我的代码归结为这个简单的例子: var sw = new Sto
我编写了一个 where 函数来检查产品是否具有某些功能并找到价格最高的产品。 我的简单模型如下所示: public class Product { public long Product
我尝试调用 EF 方法 ToListAsync。但什么也没发生——没有异常(exception),只是运行没有超时。 这是我的代码。 private IQueryable placeC
以下是由于 .ToListAsync() 不受内存数据库集支持而在 .ShouldNotThrow() 上失败的那种测试(我没有方便的确切措辞,但你明白了)。万一它很重要,我正在尝试模拟 Entity
我有一个 EF Core 程序。 代码 class EagerLoading { public async void load() { Console.WriteLin
我有一个简单的 Winforms 应用程序,上面有一个按钮。首先使用 EF 6.1.1 代码,如果我在查询中使用 .ToListAsync,它将卡住表单,直到结果从 SQL Server 返回。
我们有一个简单的数据库,我们正尝试在 MVC5 应用程序中使用 EntityFramework 异步检索数据库记录,如下所示: var result = await dbcontext.Emails.
当直接从数据库向 Controller 提供 IEnumerable 时, Controller 如何工作?哪个代码更正确和最优?让我们假设数据库非常慢并且正在进行其他操作。 这个例子非常简单,所以执
我有这个代码 foreach (var e in await database.Entities.Where(...).ToListAsync()) 据我所知,这段代码有一个不必要的开销,将查询结果复
我正在阅读 this tutorial .我想在 EF Core 中使用 async 查询。 当我这样使用时效果很好: var tasks = await _taskRepository .G
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
我有这段代码,但我不知道我的代码有什么问题。我有 EF 5,我想创建一个 Task await 方法。 我想做的是以异步方式选择查询一个简单的表。但是 ToListAsync() 方法似乎不在我的 E
我对使用 moq 进行测试还很陌生,遇到了一个奇怪的问题(至少对我来说似乎很奇怪),但我可能只是没有正确设置模拟对象。我有一个使用 EntityFrameworkCore 来处理我的 DbContex
函数需要返回Task>以下两个选项都返回 Task> ,哪一个更有效率?这里有标准的方法吗? 选项1 : Task> GetRecords() { return DbContext.S
我是一名优秀的程序员,十分优秀!