Oracle UDT类型不匹配

时间:2012-12-17 15:09:05

标签: oracle odp.net user-defined-types type-mismatch

我们有一个项目有两个使用相同UDT的模块。我们已经生成了示例代码中显示的UDT。当我们的项目调用应该从B.DbObjects命名空间返回UDT的B的SP时,返回的类型是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; }
    }
}

0 个答案:

没有答案