我試圖在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.DataService1.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枚舉值?
我會很高興只是int值 – Jerther 2014-11-26 16:47:27