2015-11-13 33 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