2014-09-05 30 views
1

我試圖在WCF數據服務5.6.2中使用實體框架5.0(模型優先方法),並遇到以下問題:WCF數據服務是否有任何解決方法來繞過OData V3枚舉支持中的缺席?

當數據服務將失敗時,WCF數據服務的實體數據模型包含Enum屬性在初始階段:

服務器在處理請求時遇到錯誤。異常消息是:「類型'Y'上的屬性'X'是類型'enum-type-here',它不是受支持的基本類型。」

的異常堆棧跟蹤是:

在System.Data.Services.Providers System.Data.Services.Providers.ObjectContextServiceProvider.PopulateMemberMetadata(ResourceTypeCacheItem resourceTypeCacheItem,IProviderMetadata工作區, ProviderMetadataCacheItem metadataCacheItem,PrimitiveResourceTypeMap primitiveResourceTypeMap)。 ObjectContextServiceProvider.PopulateMetadata(ProviderMetadataCacheItem metadataCacheItem)at System.Data.Services.Providers.BaseServiceProvider.LoadMetadata(Boolean skipServiceOperations)at System.Data.Services.Da taService 1.CreateInternalProvider(Object dataSourceInstance) at System.Data.Services.DataService 1.CreateMetadataAndQueryProviders(IDataServiceMetadataProvider & metadataProviderInstance,IDataServiceQueryProvider & queryProviderInstance,對象& dataSourceInstance,布爾& isInternallyCreatedProvider)在 在 System.Data.Services.DataService 1.CreateProvider() at System.Data.Services.DataService 1.HandleRequest()System.Data.Services.DataService` 1.ProcessRequestForMessage(Stream messageBody)at SyncInvokeProcessRequestForMessage(Object,Object [], Object [])at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance,Object [] inputs,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)

only advise我已經找到解決問題的標記性能如[NotMapped],但磨片ñ我註釋T4生成類的枚舉屬性與此屬性它什麼都不做,數據服務仍然失敗。

此外EF提供WCF DS doesn't support System.Data.Services.IgnorePropertiesAttribute,可用於隱藏枚舉僅與反射提供程序。

如何使用WCF數據服務公開字符串而不是DB存儲int-backed枚舉值?

+0

我會很高興只是int值 – Jerther 2014-11-26 16:47:27

回答

相關問題