EF需要时间来执行SP

EF takes time to execute SP

与 SQLCommand 的 ExecuteNoNQuery() 和 Datareader 的 SP 执行时间相比,为什么从 EF(我使用的是 6.1.3 版)调用 SP 需要时间? 我正在使用 EF 进行异步调用,如下所示 -

public async Task<IList<T>> ExecSPAsync<T>(string query)
    {
        return await Context.Database.SqlQuery<T>(query).ToListAsync();
    }

与使用 EF 的 SP 调用相比,使用 SQLCommand/SQLDatareader 似乎效率更高。使用 EF 调用 SP 的有效方法是什么?

您使用代码优先吗?它是您应用程序中的第一个查询吗? EF 编译它的模型需要一些时间。 在此 article 中进行了解释,包括提高性能的步骤。