OracleUdt在.NET应用程序中抛出AgrumentException

OracleUdt在.NET应用程序中抛出AgrumentException,.net,oracle,stored-procedures,odp.net,odp.net-unmanaged,.net,Oracle,Stored Procedures,Odp.net,Odp.net Unmanaged,使用oracle UDT时出现以下异常: ArgumentException:已添加项。输入字典: 在System.Collections.Hashtable.Insert(对象键、对象值、布尔添加) 在Oracle.DataAccess.Types.OracleUdt.getAllReferencedAssemblys()中 在Oracle.DataAccess.Client.RegAndConfigRdr.setudtmapping(Hashtable&s_-mapudtnametomapp

使用oracle UDT时出现以下异常:

ArgumentException:已添加项。输入字典:

在System.Collections.Hashtable.Insert(对象键、对象值、布尔添加) 在Oracle.DataAccess.Types.OracleUdt.getAllReferencedAssemblys()中 在Oracle.DataAccess.Client.RegAndConfigRdr.setudtmapping(Hashtable&s_-mapudtnametomappinggobj) 在Oracle.DataAccess.Types.OracleUdt.SetCustomTypeMappings()中 位于Oracle.DataAccess.Types.OracleUdt.GetUdtName(字符串customTypeName,字符串数据源) 位于Oracle.DataAccess.Client.OracleParameter.SetUDTFromCustomObject(OracleConnection conn,IOracleCustomType customObj,Int32 i) 在Oracle.DataAccess.Client.OracleParameter.PreBind_集合(OracleConnection conn)中 在Oracle.DataAccess.Client.OracleParameter.PreBind(OracleConnection conn、IntPtr errCtx、Int32 arraySize、Boolean bIsFromEF、Boolean bIsSelectStmt) 在Oracle.DataAccess.Client.OracleCommand.ExecuteReader(布尔重新查询、布尔填充请求、命令行为) 在Oracle.DataAccess.Client.OracleCommand.ExecuteReader()中 在DBConn.DB_命令.ExecuteReader()处

仅在生产机器上发生。在本地开发者环境中不可复制。
有人知道发生了什么吗?

当然,你减少了告诉你什么是错误的错误部分。你有一个重复的数据。对此我们无能为力这是我唯一的例外。我们什么都不剪,看消息。您的程序正在尝试添加密钥,该密钥已存在于此处
哈希表中。请插入
。这基本上意味着在你的生产数据中有一些重复,我很抱歉。你读过例外吗?你看到谁叫HashTable.Insert了吗?我的程序只做一件事——调用common ExecuteReader()。我非常感谢你试图帮助我,但不幸的是你错了。这就是oracle如何在UDT和它们的C#表示之间进行映射;该代码适用于除Web.API以外的任何类型的应用程序。我们通过将udt映射放到Web.config中临时找到了解决方案。当然,感谢你,你减少了告诉你什么是错误的错误部分。你有一个重复的数据。对此我们无能为力这是我唯一的例外。我们什么都不剪,看消息。您的程序正在尝试添加密钥,该密钥已存在于此处
哈希表中。请插入
。这基本上意味着在你的生产数据中有一些重复,我很抱歉。你读过例外吗?你看到谁叫HashTable.Insert了吗?我的程序只做一件事——调用common ExecuteReader()。我非常感谢你试图帮助我,但不幸的是你错了。这就是oracle如何在UDT和它们的C#表示之间进行映射;该代码适用于除Web.API以外的任何类型的应用程序。我们通过将udt映射放到Web.config中临时找到了解决方案。谢谢