我有一个现有的应用程序。我正在尝试将某些部分从.NET 4.x移植到.NET Core。我已经在.NET Core应用中创建了一个上下文。我已经通过scaffold-dbcontext创建了一个数据库上下文。我可以运行基本查询(hooray)。生活很好。现在,我想添加一些异步查询。我收到以下错误:
System.InvalidOperationException:'源IQueryable的提供程序未实现IDbAsyncQueryProvider。只有实现IDbAsyncQueryProvider的提供程序可以用于Entity Framework异步操作。有关更多详细信息,请参见http://go.microsoft.com/fwlink/?LinkId=287068。'
代码:
var ctx = new GolfGameContext();
var userId = await (from u in ctx.AspNetUsers where u.Token == UserToken select u.Id).SingleAsync();
return userId;
此错误似乎很奇怪。我已经从头开始创建了一些.NET Core 2.x应用程序,并且一切似乎都能正常运行。我能够与他们做异步查询就好了。当我查看错误链接时,会获得有关EF 6.x的信息。我猜想scaffold-dbcontext会将某些东西放入导致此问题的结果模型中。我还猜测我在Core 2.x中创建的代码不包含这些相同的限制。我在正确的轨道上吗?我是否需要更改上下文/模型中的某些内容才能使异步正常工作?欢迎所有想法。
TIA,
Wally