将Devart Oracle提供程序与OData一起使用时出现DataServiceException

时间:2018-06-29 15:58:22

标签: oracle entity-framework odata devart

我正在使用Devart Oracle驱动程序通过OData端点调用它。

在其中一种环境中,我遇到了错误:

Data service failure.
An exception was thrown of type DataServiceException.
    Message: Internal Server Error. The type 'System.Data.Services.Internal.ProjectedWrapper3' is not a complex type or an entity type.
    Source: Microsoft.Data.Services
    Help Link: 
    ErrorCode: 
    HResult: -2146233079
    MessageLanguage: en-US
    StatusCode: 500
    TargetSite: System.Data.Services.Providers.ResourceType GetNonPrimitiveResourceType(System.Data.Services.Providers.DataServiceProviderWrapper, System.Object)
    Exception Type: System.Data.Services.DataServiceException, Microsoft.Data.Services, Version=5.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

Additional Information:
    FullName: Validation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null
    IdentityName: NT AUTHORITY\NETWORK SERVICE

Stack Trace:
       at System.Data.Services.WebUtil.GetNonPrimitiveResourceType(DataServiceProviderWrapper provider, Object obj)
       at System.Data.Services.Serializers.EntitySerializer.WriteEntry(IExpandedResult expanded, Object element, Boolean resourceInstanceInFeed, ResourceType expectedType)
       at System.Data.Services.Serializers.EntitySerializer.WriteFeedElements(IExpandedResult expanded, QueryResultInfo elements, ResourceType expectedType, String title, Func`1 getRelativeUri, Func`1 getAbsoluteUri, Boolean topLevel)
       at System.Data.Services.Serializers.EntitySerializer.WriteTopLevelElements(IExpandedResult expanded, QueryResultInfo elements)
       at System.Data.Services.Serializers.Serializer.WriteRequest(QueryResultInfo queryResults)
       at System.Data.Services.ResponseBodyWriter.Write(Stream stream)

执行下一个请求时:

var type = modelServiceWrapper.CreateQuery<MyClass>()
                .OrderBy(m => m.Subclass.Property1)
                .Where(m => m.Id == id && m.Subclass.Property2 == typeToFilterOn)
                .Select(m => new {m.Id})
                .FirstOrDefault();

这似乎是一个特定于环境的问题,因为相同的IIS文件夹和相同的数据库可以在其他环境中正常工作。

看起来错误消息是从here抛出的,但我无法更深入地了解为什么Devart Oracle提供程序无法处理ProjectedWrapper *对象。

有人面对这样的问题吗?

更新

该问题似乎与数据或数据库设置有关。我试图将相同环境上的相同代码指向另一个数据库,但没有遇到问题。

ProxyCreation ID也被禁用。

0 个答案:

没有答案