最近在做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());