过去两天我一直在墙上撞墙。本质上,我使用Visual Studio的Oracle工具(ODAC 12c Release 3和Visual Studio的Oracle Developer Tools(12.1.0.2.1))创建了UDT,并添加了所需的属性。
我传递的对象是一个UDT对象,它有一个UDT集合,它包裹着一些属性。
当从数据库中提取数据时,它会起作用,但在尝试将UDT对象作为参数传递给存储过程时会抛出一个拟合。 我检查了所有想到的东西: - 类型; - 命令配置:类型设置为OracleType.Object(尝试使用数组 - 无更改);
以下是调用堆栈的错误:
"动态程序集不支持调用的成员。"
在System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
at Oracle.DataAccess.Types.OracleUdt.GetAllReferencedAssemblies()
在 Oracle.DataAccess.Client.RegAndConfigRdr.setudtmapping(哈希表&安培; s_mapUdtNameToMappingObj)
at Oracle.DataAccess.Types.OracleUdt.SetCustomTypeMappings()
at Oracle.DataAccess.Types.OracleUdt.GetUdtName(String customTypeName,String dataSource)
在 Oracle.DataAccess.Client.OracleParameter.SetUDTFromCustomObject(的OracleConnection conn,IOracleCustomType customObj,Int32 i)
在 Oracle.DataAccess.Client.OracleParameter.PreBind_OracleObject(的OracleConnection 康涅狄格州)
在 Oracle.DataAccess.Client.OracleParameter.PreBind_Object(的OracleConnection 康涅狄格州)
在 Oracle.DataAccess.Client.OracleParameter.PreBind(的OracleConnection conn,IntPtr errCtx,Int32 arraySize)
at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
在OracleDatabaseHelper.OracleCommandEx.ExecuteNonQuery()