Я пытаюсь использовать Entity Framework 5.0 (подход Model-First) с WCF Data Services 5.6.2 и столкнулся со следующей проблемой:
Если модель данных Entity для службы данных WCF содержит свойство Enum, когда служба данных завершится ошибкой на этапе инициализации:
Сервер обнаружил ошибку при обработке запроса. Сообщение об исключении: «Свойство« X »для типа« Y » имеет тип« enum-type-here », который не является поддерживаемым примитивным типом».
Трассировка стека исключений:
System.Data.Services.Providers.ObjectContextServiceProvider.PopulateMemberMetadata(ResourceTypeCacheItem resourceTypeCacheItem, рабочая область IProviderMetadata, ProviderMetadataCacheItem metadataCacheItem, PrimitiveResourceTypeMap примитивныйResourceTypeMap) в System.Data.Services.Providers.ObjectContextServiceProvider.PopulateMetadata(ProviderMetadataCacheItem metadataCacheItem) в System.Data..ServiceProviders.Providers .LoadMetadata(Boolean skipServiceOperations) в System.Data.Services.DataService
1.CreateInternalProvider(Object dataSourceInstance) at System.Data.Services.DataService
1.CreateMetadataAndQueryProviders(IDaServiceMetadataProvider& metadataProviderInstance, IDataServiceQueryProvider& queryProviderInstance, Object& dataSourceInstance, Boolean& isInternallyCreatedProvider) в System.Data.Services.DataService1.CreateProvider() at System.Data.Services.DataService
1.HandleRequest() в System.Data.Services.DataService` 1.ProcessRequestForMessage(Stream messageBody) в SyncInvokeProcessRequestForMessage(Object, Object[], Object[]) в System.ServiceModel.Dispatcher.SyncMeth odInvoker.Invoke(экземпляр объекта, входы Object[], Object[]& выходы) в System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) в System.ServiceModel .Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) в System.ServiceModel.Dispatcher.MessageRpc.Process(логическое значение isOperationContextSet)
только совет Я обнаружил, что для устранения проблемы помечает такие свойства как [NotMapped], но когда я аннотирую свойства перечисления сгенерированных классов T4 с помощью этого атрибута, он ничего не делает, и служба данных по-прежнему не работает .
Также поставщик EF для WCF DS -wcf-data-services-50-rtm-release" rel="nofollow">не поддерживает System.Data.Services.IgnorePropertiesAttribute, который можно использовать для скрытия перечислений только с поставщиком Reflection.
Как я могу предоставить строки вместо хранимых в БД значений перечисления с внутренней поддержкой с помощью служб данных WCF?