使用Entity Framework 5从oracle包导入过程

Joh*_*ohn 4 c# oracle stored-procedures entity-framework-5

CREATE OR REPLACE PACKAGE johns_test_pkg AS

  PROCEDURE test(some_parameter IN  NUMBER,
                 success_id     OUT NUMBER);

  PROCEDURE test_no_out_parameter(some_parameter IN NUMBER);

  PROCEDURE test_no_in_parameter(success_id OUT NUMBER);

END johns_test_pkg;
/

CREATE OR REPLACE PACKAGE BODY johns_test_pkg AS

  --
  PROCEDURE test(some_parameter IN  NUMBER,
                 success_id     OUT NUMBER)
  IS
    v_app_user_session_id INTEGER;
    BEGIN
      v_app_user_session_id := 1 + some_parameter;

      success_id := v_app_user_session_id;
    END;

  --
  PROCEDURE test_no_out_parameter(some_parameter IN NUMBER)
  IS
    v_app_user_session_id INTEGER;
    BEGIN
      v_app_user_session_id := 1 + some_parameter;
    END;

  --
  PROCEDURE test_no_in_parameter(success_id OUT NUMBER)
  IS    
    v_app_user_session_id INTEGER;
    BEGIN
      v_app_user_session_id := 1 + 10;
      success_id := v_app_user_session_id;
    END;

END johns_test_pkg;
/
Run Code Online (Sandbox Code Playgroud)

鉴于以上简单的Oracle包中有三个程序.我试图使用Entity Framework 5将这些过程添加到我的模型中但没有用.我已经能够添加一些不在包中的Oracle过程.

我一直在阅读这个问题,其他一些问题类似于如何调用oracle-function-with-return-value-using-linq-to-entities并从所选答案中读取.该人员声明IN OUT参数或OUT参数应该有效,但我的三个都没有被导入.我原本以为test_no_in_parameter程序会被加载?

是否可以在包装下加载程序?

pat*_*zzi 10

在edmx模型中,右键单击"从数据库更新模型",取消选中"将选定的存储过程和函数导入实体模型",选择包中的过程并进行更新.(它的工作原理)然后在"Model.Store\Stored Procedures/Functions"下的"Model Browser"中,您将看到包中的程序(最后).然后将它们映射到"函数导入".

我不明白为什么取消勾选导入存储过程的工作原理,但确实如此.