实体框架不能为Oracle存储过程“添加函数导入”

时间:2012-03-26 19:03:25

标签: oracle entity-framework stored-procedures recordset

我正在使用以下工具的实体框架:

  1. MS Visual Studio 2010 Professional SP1

  2. Oracle网站上的最新Oracle数据提供商。 (ODAC 11.2发布 4(11.2.0.3.0)for 32 bit)从中下载 http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

  3. Oracle 11g服务器

  4. 我的表格如下

    enter image description here

    我的存储过程如下所示:

    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表。 然后我点击“获取列信息”按钮。

    我得到一个名为“选定的存储过程不返回任何列。”的响应。

    请帮忙。

    enter image description here

    我希望能够通过实体框架将存储过程中的记录集转换为我的.net类。

    由于

1 个答案:

答案 0 :(得分:2)

请在“返回一个集合”中选择复杂,然后重试。

“函数导入和检索隐式结果集|直接插入和更新数据”中的示例

http://download.oracle.com/oll/obe/EntityFrameworkOBE/EntityFrameworkOBE.htm#t9