C# 实体框架无法从Oracle存储过程映射出参数

C# 实体框架无法从Oracle存储过程映射出参数,c#,oracle,stored-procedures,oracle11g,entity-framework-6,C#,Oracle,Stored Procedures,Oracle11g,Entity Framework 6,我正在用一个输入参数和一个输出参数为Oracle数据库中的Insert创建存储过程 这是我的存储过程(从现在开始就简单了) 此输出参数(数字类型)应将刚刚插入的主键返回到C代码 下面是我的C#代码(即借助MapToStoredProcess),它使用EF6调用INSERT_EMPLOYEE stored proc并尝试获取OUT参数中的值(本例中为OUT_EMPLOYEE_ID) 这是我的Employee实体类,EmpoyeId作为Int64(long)类型的主键 但我发现类型不匹配问题如下:

我正在用一个输入参数和一个输出参数为Oracle数据库中的Insert创建存储过程

这是我的存储过程(从现在开始就简单了)

此输出参数(数字类型)应将刚刚插入的主键返回到C代码

下面是我的C#代码(即借助MapToStoredProcess),它使用EF6调用INSERT_EMPLOYEE stored proc并尝试获取OUT参数中的值(本例中为OUT_EMPLOYEE_ID)

这是我的Employee实体类,EmpoyeId作为Int64(long)类型的主键

但我发现类型不匹配问题如下:

"innerException": {
      "message": "An error has occurred.",
      "exceptionMessage": "ORA-06550: line 1, column 8:\nPLS-00306: wrong number or types of arguments in call to 'INSERT_EMPLOYEE'\nORA-06550: line 1, column 8:\nPL/SQL: Statement ignored"
}
如果主键字段的类型为string,而存储过程中的OUT param的类型为nvarchar2,则同样可以正常工作

任何解决方案都将受到高度赞赏

ToTable("ADVENTUREWORKS.EMPLOYEE");

        HasKey(model => model.EmployeeId);

        // Property Mappings
        Property(model => model.EmployeeId).HasColumnName("EMPLOYEE_ID").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
        Property(model => model.EmployeeName).HasColumnName("EMPLOYEE_NAME");

        // Configure Stored Procedures
        this.MapToStoredProcedures(p =>
        {
            p.Insert(sp =>
                    sp.HasName("ADVENTUREWORKS.INSERT_EMPLOYEE").Parameter(b => b.EmployeeName, "p_employee_name")
                   .Result(re => re.EmployeeId, "OUT_EMPLOYEE_ID")
            );
        });
  public class Employee
        {
            public long EmployeeId { get; set; }

            public string EmployeeName { get; set; }
        }
"innerException": {
      "message": "An error has occurred.",
      "exceptionMessage": "ORA-06550: line 1, column 8:\nPLS-00306: wrong number or types of arguments in call to 'INSERT_EMPLOYEE'\nORA-06550: line 1, column 8:\nPL/SQL: Statement ignored"
}