Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ODP.NET&&;实体框架&x27;索引超出了数组';例外情况_C#_Oracle_Entity Framework_Odp.net - Fatal编程技术网

C# ODP.NET&&;实体框架&x27;索引超出了数组';例外情况

C# ODP.NET&&;实体框架&x27;索引超出了数组';例外情况,c#,oracle,entity-framework,odp.net,C#,Oracle,Entity Framework,Odp.net,根据oracle data provider for.net(ODP.net),我正在使用oracle 12 c和entity framework 6。当我试图在插入过程中为计算列添加结果绑定时,我得到了“索引超出了数组的界限”异常 以下是场景详细信息: 我使用Oracle12C创建了这个表,其中包含“commission”作为计算列(vrtual) 之后,我创建了一个insert过程,该过程在末尾返回插入的记录: CREATE OR REPLACE PROCEDURE sprocEMP_IN

根据oracle data provider for.net(ODP.net),我正在使用oracle 12 c和entity framework 6。当我试图在插入过程中为计算列添加结果绑定时,我得到了“索引超出了数组的界限”异常

以下是场景详细信息: 我使用Oracle12C创建了这个表,其中包含“commission”作为计算列(vrtual)

之后,我创建了一个insert过程,该过程在末尾返回插入的记录:

 CREATE OR REPLACE PROCEDURE sprocEMP_INSERT 
  (    
    first_name_P    EMP.first_name%TYPE     ,
    last_name_P     EMP.last_name%TYPE      ,
    salary_P        EMP.salary%TYPE         ,
    curParam OUT SYS_REFCURSOR

  )    
IS 
   RECORD_ID EMPLOYEES.EMPLOYEE_ID%TYPE;
BEGIN 
    RECORD_ID := EMPLOYEES_SEQ.NEXTVAL; 
    INSERT INTO HR.EMPLOYEES
        (
          id          ,
          first_name  ,
          last_name   ,
          salary        
        )  
    VALUES 
        (
          RECORD_ID   ,
          first_name_P,
          last_name_P ,
          salary_P
        );  
    COMMIT;
    OPEN curParam FOR 
        SELECT * FROM EMP 
        WHERE ID = RECORD_ID; 
END;
然后我将它们导入EF模型并映射插入过程,如链接图像中所示:

到目前为止,一切正常,insert过程运行良好并返回id值,但当我添加任何其他计算列(如链接图像中)时,我得到“索引超出了数组的界限”异常

异常详细信息:

StackTrace

   at Oracle.ManagedDataAccess.Client.OracleDataReader.GetValue(Int32 i)
   at System.Data.Entity.Core.Mapping.Update.Internal.FunctionUpdateCommand.Execute(Dictionary`2 identifierValues, List`1 generatedValues)
   at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()
Oracle.ManagedDataAccess
来源

   at Oracle.ManagedDataAccess.Client.OracleDataReader.GetValue(Int32 i)
   at System.Data.Entity.Core.Mapping.Update.Internal.FunctionUpdateCommand.Execute(Dictionary`2 identifierValues, List`1 generatedValues)
   at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()
Oracle.ManagedDataAccess

这似乎与缓存元数据有关。正如在中所讨论的,它似乎与缓存元数据有关。正如在