如何在 Entity Framework Core 中运行带有结果集的异步存储过程

问题描述 投票:0回答:1

我创建了创建一些报告的存储过程。标准 ID、用户名、NumOfSomething、月份。

现在我想获得这个异步存储过程的结果。我可以用标准同步方式做到这一点:

public async ValueTask<List<ReportDto>> GetReport(int managerId)
{
    var result = reportContext.Database.SqlQuery<ReportDto>($"MonthlyNumOfCasesPerUserReport @ManagerId = {managerId}").ToList();

    return result;
}

这段代码工作得很好,因为它已经将结果映射到我的实体中,但我想异步执行它。

我已经尝试过 ToListAsync() 但出现错误:

System.InvalidOperationException:源 IQueryable 没有 实现 IDbAsyncEnumerable。仅有的 实现 IDbAsyncEnumerable 的源可用于实体 框架异步操作。

问题是我在 using 部分中有 System.Data.Entity。 问题解决了。

t-sql .net-core stored-procedures async-await entity-framework-core
1个回答
0
投票

问题与将 EntityFramework 和 EntityFrameworkCore 混合在一个文件中有关。 DbContext 文件使用 System.Data.Entity(来自 EF)导致了问题。

© www.soinside.com 2019 - 2024. All rights reserved.