Я использую драйвер 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 и та же база данных отлично работают в других средах.
Похоже, сообщение об ошибке выдается здесь , но я не могу углубиться и выяснить, почему поставщик Oracle Devart не может обработать объект ProjectedWrapper *.
Кто-нибудь сталкивался с такой проблемой?
Обновление
Похоже, проблема связана с данными или настройками базы данных. Я попытался указать один и тот же код в той же среде на другую базу данных, но проблема не возникла.
Идентификатор ProxyCreation тоже отключен.