最近在做ASPNET CORE WEBAPI的时候遇到了一个关于EntityFramework Core异步方式执行查询(ToListAsync、FirstAsync、ForEachAsync等)的问题。
在此记录以下解决方法,当然如果大佬们有其它更好的也可以下面留言
样例代码:
var result = await _context.Company.AsNoTracking()
.Where(m => m.ID == parameters.id)
.ProjectTo<CompanyDto>(_mapper.ConfigurationProvider)
.ToListAsync();
错误信息:
The provider for the source IQueryable doesn't implement IDbAsyncQueryProvider.Only providers that implement IDbAsyncQueryProvider can be used for Entity Framework asynchronous operations
解决方案:
方法一:
官方文档给出了一个解决方案 : http://go.microsoft.com/fwlink/?LinkId=287068
方法二:
var result = await Task.FromResult(_context.Company.AsNoTracking()
.Where(m => m.ID == parameters.id)
.ProjectTo<CompanyDto>(_mapper.ConfigurationProvider)
.ToList());