Ane*_*han 7 oracle ado.net entity-framework odp.net oracle11g
我试图通过Entity Framework访问Oracle 11g上的存储过程.我可以访问返回标量的存储过程,并返回正确的值.但是,当使用SYS_REFCURSOR返回结果集时,在函数导入时未检测到OUT参数.
我的存储过程如下
create or replace PROCEDURE "GetAllClientNames" (
"ID" IN NUMBER,
"SAL" IN NUMBER,
"EMP_CURSOR" OUT SYS_REFCURSOR) IS
BEGIN
OPEN EMP_CURSOR FOR SELECT FIRSTNAME FROM CLIENTS;
END;
Run Code Online (Sandbox Code Playgroud)
但是在更新实体并执行函数导入时,导入的函数中未检测到SYS_REFCURSOR OUT参数以检索结果集.

请帮我解决这个问题.没有OUT参数我无法访问存储过程检索的结果集
小智 3
现在,oracle 数据提供程序允许这种操作,无需太多麻烦。这里回答起来太复杂了。添加了快速阅读。请点击以下链接了解详细信息。
ODP.NET 11g 第 2 版 (11.2.0.3.0) 及更高版本允许应用程序使用 REF CURSOR 参数运行存储过程,而无需在 .NET 代码中对这些参数使用显式绑定。
对于只读结果集(例如使用 OracleDataReader 的 REF CURSOR),会自动检索 REF CURSOR 架构信息。
对于某些场景,例如使用可更新的 REF CURSOR 或实体框架时,开发人员需要定义 REF CURSOR 架构信息,以便应用程序可以绑定隐式 REF CURSOR。实体框架应用程序使用隐式 REF CURSOR 绑定从 REF CURSOR 数据实例化复杂类型。应用程序必须在 app.config、web.config 或 machine.config .NET 配置文件中指定 REF CURSOR 绑定和元数据信息。
当应用程序从表示 REF CURSOR 的 OracleDataReader 对象请求架构信息时,也会使用 .NET 配置文件中提供的属性。这意味着对于使用单个表中的 SELECT 创建的 REF CURSOR,应用程序可以通过使用 OracleDataAdapter 和 OracleCommandBuilder 来更新该表。
使用实体框架时,函数导入可以返回隐式绑定的 REF CURSOR。REF CURSOR 可以作为复杂类型或实体类型的集合返回。要返回复杂类型集合,.NET 配置文件需要定义 REF CURSOR 绑定和元数据信息。要返回实体类型集合,只需要在.NET配置文件中定义绑定信息。
在这里找到完整的信息
| 归档时间: |
|
| 查看次数: |
6876 次 |
| 最近记录: |