我正在使用以下工具的实体框架:
MS Visual Studio 2010 Professional SP1
Oracle网站上的最新Oracle数据提供商。 (ODAC 11.2发布 4(11.2.0.3.0)for 32 bit)从中下载 http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
Oracle 11g服务器
我的表格如下
我的存储过程如下所示:
PROCEDURE "GET_SUPPLIERS" (
"SUPP_LIST" OUT SYS_REFCURSOR) IS
BEGIN
OPEN SUPP_LIST FOR
SELECT
SUPPLIER_NAME
FROM
A_SUPPLIER ;
END;
我为我的实体框架项目更新了app.config,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="Entities" connectionString="tookitoutfromhere" />
</connectionStrings>
<oracle.dataaccess.client>
<settings>
<add name="FSDEVTL.GET_SUPPLIERS.RefCursor.SUPP_LIST" value="implicitRefCursor bindinfo='mode=Output'" />
<add name="FSDEVTL.GET_SUPPLIERS.RefCursorMetaData.SUPPLIER_NAME.Column.0" value="implicitRefCursor metadata='ColumnName=SUPPLIER_NAME;BaseColumnName=SUPPLIER_NAME;BaseSchemaName=FSDEVTL;BaseTableName=A_SUPPLIER;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
</settings>
</oracle.dataaccess.client>
</configuration>
我执行以下步骤:
在我的.edmx项目下 - &gt; Model.Store - &gt;存储过程 - &gt; GET_SUPPLIERS
右键单击存储过程“GET_SUPPLIERS” 选择“添加功能导入” 功能导入名称和存储过程名称已预先填充 Under返回一个集合 我选择Entities作为a_supplier,它是导入的Oracle表。 然后我点击“获取列信息”按钮。
我得到一个名为“选定的存储过程不返回任何列。”的响应。
请帮忙。
我希望能够通过实体框架将存储过程中的记录集转换为我的.net类。
由于
答案 0 :(得分:2)
请在“返回一个集合”中选择复杂,然后重试。
“函数导入和检索隐式结果集|直接插入和更新数据”中的示例
http://download.oracle.com/oll/obe/EntityFrameworkOBE/EntityFrameworkOBE.htm#t9