我们有一个项目,它有两个使用相同 UDT 的模块。我们已经生成了示例代码中显示的 UDT。当我们的项目调用 B 的 SP 应该从 B.DbObjects 命名空间返回 UDT 时,返回的类型是 A.DbObjects 命名空间。这是因为 Oracle Data Access 从 OracleCustomTypeMappingAttribute 获取类型名称并使用该值创建实例。由于命名空间不同,我们无法将数据绑定到我们的返回类型。有解决方案吗?
代码:
模块 A - 输出 A.dll
namespace A.DbObjects
{
[OracleCustomTypeMapping("SCHEMA.UDTNAME")]
public partial class UDTNAME : OracleCustomType
{
[OracleObjectMappingAttribute("X")]
public string X { get; set; }
[OracleObjectMappingAttribute("Y")]
public decimal Y { get; set; }
[OracleObjectMappingAttribute("Z")]
public decimal Z { get; set; }
}
}
模块 B - 输出 B.dll
namespace B.DbObjects
{
[OracleCustomTypeMapping("SCHEMA.UDTNAME")]
public partial class UDTNAME : OracleCustomType
{
[OracleObjectMappingAttribute("X")]
public string X { get; set; }
[OracleObjectMappingAttribute("Y")]
public decimal Y { get; set; }
[OracleObjectMappingAttribute("Z")]
public decimal Z { get; set; }
}
}