ASP.NET CORE - The provider for the source IQueryable doesn't implement IDbAsyncQueryProvider

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

猜你喜欢

转载自www.cnblogs.com/DerekDeng/p/12980851.html