EF中的异步实现JoinAwait



我使用System.Linq.Async,我尝试这样做,但我得到错误。

await _dbContext.Application
.AsAsyncEnumerable()
.Join(_dbContext.Users, 
o => o.IdUser, 
i => i.Id, 
(o, i) => new { Id = o.Id })
.ToListAsync();

如何创建JoinAwait正确的查询?

您不能在同一上下文中并行运行多个查询。

通常没有理由从关系数据库加载完整的ApplicationUser表到内存中,然后将它们连接到那里,而不是允许db引擎做它设计的目的。删除AsAsyncEnumerable,只需对数据库运行简单的查询:

await _dbContext.Application
.Join(_dbContext.Users, 
o => o.IdUser, 
i => i.Id, 
(o, i) => new { Id = o.Id })
.ToListAsync();

或者更好,如果ApplicationUser之间存在关系,并且可以设置它-为您的实体添加相应的导航属性并使用这些属性执行连接。

相关内容

  • 没有找到相关文章

最新更新