EF Core是否有EF中ExecuteFunction的等效方法?(无实体返回存储过程)
在.NET 6中调用无对应数据库实体的存储过程
原有实现(.NET Framework)
在之前的.NET Framework解决方案中,我们通过以下方式调用返回类型未对应数据库实体的存储过程:
((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<stored_procedure_model_not_in_database>("sp_name", sp params)
当前重构需求与问题
现在基于.NET 6开发微服务,需要重构上述代码以调用同一存储过程(返回类型一致),要求在指定DbContext实例上调用,但返回值类型未在数据库中定义。
我找到的最接近的写法是:
_myDbContext.Database.CreateExecutionStrategy().Execute()
该Execute方法的定义如下:
Execute<TState,TResult>(TState, Func<TState,TResult> operation, Func<TState,ExecutionResult<TResult>>? veritySucceeded)
但不确定其中的TState参数和操作函数该如何编写,也不确定这是否是正确的实现方式,希望得到思路或建议。
补充进展
已找到一个可行的解决方案思路:无需为返回类型创建DbSet,即可从EF Core中获取存储过程的返回结果。测试完成后会更新问题状态。
内容的提问来源于stack exchange,提问作者jmath412
相关产品推荐
相关产品推荐

