oracle - 将 Devart Oracle 提供程序与 OData 一起使用时出现 DataServiceException
问题描述
我正在使用 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 文件夹和相同的数据库在其他环境中工作正常。
看起来错误消息是从这里抛出的,但我无法更深入地找出 Devart Oracle 提供程序无法处理 ProjectedWrapper* 对象的原因。
有人遇到过这样的问题吗?
更新
看起来问题与数据或数据库设置有关。我试图将同一环境中的相同代码指向不同的数据库,但没有遇到问题。
ProxyCreation id 也被禁用。
解决方案
推荐阅读
- tensorflow - 保存混洗数据集状态
- c# - MySQL 数据库本身中不存在的 EntityFrameworkModel 中的方案
- python - 根据行/列的值提取字符串
- php - 如何处理 cookie 的路径属性中的空格
- android - 如何检测应用程序是关闭还是暂停
- r - 执行此操作的 R 命令是什么?
- python - Python Pandas:意味着新列中每 n 行重复 n 次
- javascript - 无法读取 null nodejs google 电子表格的属性提要
- python - 仅使用 NumPy 的 Python 图像卷积
- r - 从列表中提取数据并将其放入一个整洁的小标题中,R