2015-11-13 39 views
0

Doing exactly the same in this LINK呼叫Oracle包/过程中使用实体框架

我想打电话给使用实体框架Oracle过程/包。但是我得到的链接中提到的错误不同。

代码

public List<ClearTypes> GetOffices() 
{ 
    var param1 = new OracleParameter("P_CUR", OracleDbType.RefCursor, ParameterDirection.Output);   
    var ATests = this.Database.SqlQuery<ClearTypes>("BEGIN PRC_GET_CLEAR(:P_CUR); end;", param1).ToList();    
    return ATests; 
} 

SQL查询:

BEGIN 
    OPEN P_CUR FOR 

    SELECT ID, Name FROM ClearType; 

END 

ClearType类:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace MVCApp2.Models 
{ 
    public class ClearTypes 
    { 
     public int ID{get;set;} 
     public string Name{ get; set; } 
    } 
} 

运行应用程序时,我得到的错误是:

类型“System.ArgumentException”的异常出现在 System.Data.Entity.dll但在用户代码中没有处理

其他信息:值没有落入预期范围内。

这可能是什么原因?

回答

1

如果您在Visual Studio中添加来自 Nuget包的Oracle托管数据访问包,这将起作用。

使用OracleParameter来自Oracle.ManagedDataAccess.Client;不会抛出错误。

+0

保存我的一天! – mpora