我在Oracle數據庫中聲明的類型:然而C#類和Oracle映射參數
CREATE OR REPLACE TYPE t_project_code_changes AS TABLE OF obj_project_code_change;
我映射到這種類型的C#像這樣
[OracleCustomTypeMapping("DEV_SCHEMA.OBJ_PROJECT_CODE_CHANGE")]
class ProjectCodeChangeFactory : TypeFactoryTemplate<ProjectCodeChangeDTO>
{
//code
}
上面代碼工作而不會出現錯誤,如果我從屬性中刪除模式名稱'DEV_SCHEMA',它將失敗:
[OracleCustomTypeMapping("OBJ_PROJECT_CODE_CHANGE")]
生成以下錯誤:
Unhandled Exception: System.InvalidOperationException: Custom type mapping for 'ProjectCodeChangeDTO' is not specified or is in valid.
at Oracle.DataAccess.Types.OracleUdt.GetUdtName(String customTypeName, String dataSource)
在某些時候,我希望將代碼發送過去'DEV_SCHEMA',但這會導致代碼失敗。
的架構名稱來源於連接字符串User Id
:
"Data Source=DBNAME;User id=DEV_SCHEMA;Password=pwd;Pooling=False;"
有什麼我可以做ONM C#側的甲骨文幫助我。即,以某種方式:
- 傳遞架構名稱作爲屬性參數
- 定義Oracle中的類型,我並不需要使用模式
由於其它的比特的方式信息,當我使用ODP.NET客戶端版本11.1.0.7時,會出現此問題。 11.2版本的DLL完美工作,沒有屬性中的模式名稱。
任何幫助將不勝感激。