将项目从.NET Core 2.2迁移到版本3.1之后,IAsyncEnumerator和IAsyncQueryProvider出现错误:
通过此修复程序,我设法解决了与IAsyncEnumerable相关的第一个问题,以下是我在Google上发现的问题:
<Target Name="ChangeAliasesOfReactiveExtensions" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
<ItemGroup>
<ReferencePath Condition="'%(FileName)' == 'System.Interactive.Async'">
<Aliases>ix</Aliases>
</ReferencePath>
</ItemGroup>
</Target>
但是,我找不到第二个问题的解决方案。
出现错误的代码示例:
internal class TestAsyncQueryProvider<TEntity> : IAsyncQueryProvider
{
private readonly IQueryProvider _inner;
internal TestAsyncQueryProvider(IQueryProvider inner)
{
_inner = inner;
}
public IQueryable CreateQuery(Expression expression)
{
return new TestAsyncEnumerable<TEntity>(expression);
}
public IQueryable<TElement> CreateQuery<TElement>(Expression expression)
{
return new TestAsyncEnumerable<TElement>(expression);
}
public object Execute(Expression expression)
{
return _inner.Execute(expression);
}
public TResult Execute<TResult>(Expression expression)
{
return _inner.Execute<TResult>(expression);
}
public IAsyncEnumerable<TResult> ExecuteAsync<TResult>(Expression expression)
{
return new TestAsyncEnumerable<TResult>(expression);
}
public Task<TResult> ExecuteAsync<TResult>(Expression expression, CancellationToken cancellationToken)
{
return Task.FromResult(Execute<TResult>(expression));
}
}
我想知道是否有人遇到过类似的问题并设法解决了这些问题。另外,值得一提的是,我仍在使用EF Core v2.x,尚未将其迁移到版本3。
答案 0 :(得分:1)
在IdentityServer更新中,Execute的接口已替换为ExecuteAsync。
有一个库已成功将此模拟实现升级到.NET Core 3.0: