首页 > 解决方案 > 如何使用实体框架核心调用oracle参数化函数?

问题描述

我在 oracle 数据库中有一个函数,其签名类似于Function test_fun(id IN NUMBER) RETURN result_out; 其中 result_out 是 REF CURSOR 类型。我确信 oracle 函数没有错误,因为它正在使用 ADO.Net(oracle.manageddataaccess) 的另一个应用程序中被调用。

即使在调用函数时我没有得到任何异常,我只是没有在返回值参数中得到任何输出。

任何人都可以帮助使用实体框架核心(使用版本 5)调用此函数。

string sql = "BEGIN :result_out := test_fun(:id) END;";
var parms = new OracleParameter[]
{
     new OracleParameter
     {
       ParameterName = "id",
       Value = 10,
       OracleDbType = OracleDbType.Int32
     },
     new OracleParameter
     {  
       ParameterName = "result_out",
       OracleDbType = OracleDbType.RefCursor,
       Direction = ParameterDirection.ReturnValue
     }
};
var x = _conext.Database.ExecuteSqlRaw(sql,parms);
var result = parms[1].Value;

标签: c#oracleentity-framework-coreef-core-5.0

解决方案


推荐阅读