使用Entity Framework调用oracle包/过程

时间:2015-11-13 12:24:56

标签: c# asp.net-mvc oracle entity-framework stored-procedures

Doing exactly the same in this LINK

我正在尝试使用Entity Framework调用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 个答案:

答案 0 :(得分:1)

  

如果您添加Oracle托管数据访问包,这将有效   Visual Studio中的Nuget包。

使用OracleParameter中的Oracle.ManagedDataAccess.Client;不会抛出错误。